@firela/api-types 0.0.0-canary.32edff08 → 0.0.0-canary.3d558482
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 +2311 -495
- package/dist/index.d.ts +2311 -495
- package/dist/index.js +59 -4
- package/dist/index.mjs +59 -4
- package/package.json +1 -1
- package/src/generated/schemas.gen.ts +2164 -426
- package/src/generated/services.gen.ts +1097 -258
- package/src/generated/types.gen.ts +2717 -745
|
@@ -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 = {
|
|
@@ -561,6 +633,55 @@ export type BatchTransactionResponseDto = {
|
|
|
561
633
|
failed: Array<BatchTransactionErrorDto>;
|
|
562
634
|
};
|
|
563
635
|
|
|
636
|
+
export type CorrectTransactionDto = {
|
|
637
|
+
/**
|
|
638
|
+
* Transaction date (ISO 8601 format)
|
|
639
|
+
*/
|
|
640
|
+
date: string;
|
|
641
|
+
/**
|
|
642
|
+
* Transaction flag: * (cleared), ! (pending)
|
|
643
|
+
*/
|
|
644
|
+
flag?: '*' | '!';
|
|
645
|
+
/**
|
|
646
|
+
* Payee name
|
|
647
|
+
*/
|
|
648
|
+
payee?: string;
|
|
649
|
+
/**
|
|
650
|
+
* Transaction narration/description
|
|
651
|
+
*/
|
|
652
|
+
narration: string;
|
|
653
|
+
/**
|
|
654
|
+
* Transaction tags (without # prefix)
|
|
655
|
+
*/
|
|
656
|
+
tags?: Array<string>;
|
|
657
|
+
/**
|
|
658
|
+
* Transaction links (without ^ prefix)
|
|
659
|
+
*/
|
|
660
|
+
links?: Array<string>;
|
|
661
|
+
/**
|
|
662
|
+
* Transaction postings (minimum 1, typically 2 for double-entry)
|
|
663
|
+
*/
|
|
664
|
+
postings: Array<CreatePostingDto>;
|
|
665
|
+
/**
|
|
666
|
+
* Transaction-level metadata
|
|
667
|
+
*/
|
|
668
|
+
meta?: {
|
|
669
|
+
[key: string]: unknown;
|
|
670
|
+
};
|
|
671
|
+
/**
|
|
672
|
+
* Unique key for idempotent transaction creation. If provided, duplicate requests with the same key will return the existing transaction.
|
|
673
|
+
*/
|
|
674
|
+
idempotencyKey?: string;
|
|
675
|
+
/**
|
|
676
|
+
* Auto-create accounts if not found. When true, missing accounts will be automatically created. When false (default for API), missing accounts will cause a validation error. Set to true for quick entry scenarios where you want to create accounts on-the-fly.
|
|
677
|
+
*/
|
|
678
|
+
autoCreateAccounts?: boolean;
|
|
679
|
+
/**
|
|
680
|
+
* Reason for correcting/superseding the original transaction
|
|
681
|
+
*/
|
|
682
|
+
correctionReason?: string;
|
|
683
|
+
};
|
|
684
|
+
|
|
564
685
|
export type PostingDetailDto = {
|
|
565
686
|
/**
|
|
566
687
|
* Posting ID
|
|
@@ -571,9 +692,9 @@ export type PostingDetailDto = {
|
|
|
571
692
|
*/
|
|
572
693
|
accountId: string;
|
|
573
694
|
/**
|
|
574
|
-
*
|
|
695
|
+
* Fully-qualified Beancount account path
|
|
575
696
|
*/
|
|
576
|
-
|
|
697
|
+
account: string;
|
|
577
698
|
/**
|
|
578
699
|
* Amount as decimal string. Typed optional but always present in responses: interpolation fills any MISSING posting before it is persisted or returned.
|
|
579
700
|
*/
|
|
@@ -594,6 +715,10 @@ export type PostingDetailDto = {
|
|
|
594
715
|
* Cost date
|
|
595
716
|
*/
|
|
596
717
|
costDate?: string;
|
|
718
|
+
/**
|
|
719
|
+
* Booking-resolved cost (mirrors engine Cost). Undefined when the posting has no cost basis.
|
|
720
|
+
*/
|
|
721
|
+
cost?: CostDetailDto;
|
|
597
722
|
/**
|
|
598
723
|
* Price amount
|
|
599
724
|
*/
|
|
@@ -691,6 +816,14 @@ export type TransactionDetailDto = {
|
|
|
691
816
|
* Correction reason (if voided or superseded)
|
|
692
817
|
*/
|
|
693
818
|
correctionReason?: string;
|
|
819
|
+
/**
|
|
820
|
+
* ID of the transaction that supersedes this one (set when status=SUPERSEDED)
|
|
821
|
+
*/
|
|
822
|
+
supersededBy?: string;
|
|
823
|
+
/**
|
|
824
|
+
* ID of the transaction this one corrected/replaced (back-link on the replacement)
|
|
825
|
+
*/
|
|
826
|
+
originalTxn?: string;
|
|
694
827
|
};
|
|
695
828
|
|
|
696
829
|
/**
|
|
@@ -709,6 +842,51 @@ export type flag2 =
|
|
|
709
842
|
*/
|
|
710
843
|
export type status2 = 'ACTIVE' | 'VOIDED' | 'SUPERSEDED';
|
|
711
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
|
+
|
|
712
890
|
export type TransactionListResponseDto = {
|
|
713
891
|
/**
|
|
714
892
|
* List of transactions
|
|
@@ -726,6 +904,10 @@ export type TransactionListResponseDto = {
|
|
|
726
904
|
* Number of items skipped
|
|
727
905
|
*/
|
|
728
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;
|
|
729
911
|
};
|
|
730
912
|
|
|
731
913
|
export type TagSuggestionDto = {
|
|
@@ -1185,17 +1367,17 @@ export type ResolveResultDto = {
|
|
|
1185
1367
|
[key: string]: string;
|
|
1186
1368
|
};
|
|
1187
1369
|
/**
|
|
1188
|
-
* Resolution ID for undo
|
|
1370
|
+
* Resolution ID for undo. Absent when the resolver rejected the decision (review stayed PENDING).
|
|
1189
1371
|
*/
|
|
1190
|
-
resolutionId
|
|
1372
|
+
resolutionId?: string;
|
|
1191
1373
|
/**
|
|
1192
1374
|
* Whether this decision can be undone
|
|
1193
1375
|
*/
|
|
1194
|
-
canUndo
|
|
1376
|
+
canUndo?: boolean;
|
|
1195
1377
|
/**
|
|
1196
1378
|
* Deadline for undo (24h from resolution)
|
|
1197
1379
|
*/
|
|
1198
|
-
undoDeadline
|
|
1380
|
+
undoDeadline?: string;
|
|
1199
1381
|
/**
|
|
1200
1382
|
* Rule ID if learning was triggered (ACCEPT_AND_LEARN actions). Use this to deep-link to the rule management page.
|
|
1201
1383
|
*/
|
|
@@ -1778,85 +1960,187 @@ export type UpdateCommodityDto = {
|
|
|
1778
1960
|
};
|
|
1779
1961
|
};
|
|
1780
1962
|
|
|
1781
|
-
export type
|
|
1963
|
+
export type CreateBeanPriceDto = {
|
|
1782
1964
|
/**
|
|
1783
|
-
*
|
|
1965
|
+
* Currency being priced (e.g., USD, AAPL, BTC)
|
|
1784
1966
|
*/
|
|
1785
|
-
|
|
1967
|
+
currency: string;
|
|
1786
1968
|
/**
|
|
1787
|
-
*
|
|
1969
|
+
* Quote currency (pricing currency, e.g., CNY, EUR)
|
|
1788
1970
|
*/
|
|
1789
|
-
|
|
1971
|
+
quoteCurrency: string;
|
|
1790
1972
|
/**
|
|
1791
|
-
*
|
|
1973
|
+
* Price amount (MUST be >= 0 per Beancount spec, supports up to 15 decimal places). Zero allowed for conversion entries, negative strictly prohibited.
|
|
1792
1974
|
*/
|
|
1793
|
-
|
|
1794
|
-
| 'WEEKLY'
|
|
1795
|
-
| 'BIWEEKLY'
|
|
1796
|
-
| 'MONTHLY'
|
|
1797
|
-
| 'BIMONTHLY'
|
|
1798
|
-
| 'QUARTERLY'
|
|
1799
|
-
| 'YEARLY'
|
|
1800
|
-
| 'CUSTOM';
|
|
1975
|
+
amount: number;
|
|
1801
1976
|
/**
|
|
1802
|
-
*
|
|
1977
|
+
* Price date (ISO 8601 format)
|
|
1803
1978
|
*/
|
|
1804
|
-
|
|
1979
|
+
date: string;
|
|
1805
1980
|
/**
|
|
1806
|
-
*
|
|
1981
|
+
* Metadata (validated by Zod schema, max field lengths enforced)
|
|
1807
1982
|
*/
|
|
1808
|
-
|
|
1983
|
+
metadata?: {
|
|
1984
|
+
[key: string]: unknown;
|
|
1985
|
+
};
|
|
1986
|
+
};
|
|
1987
|
+
|
|
1988
|
+
export type PriceResponseDto = {
|
|
1809
1989
|
/**
|
|
1810
|
-
*
|
|
1990
|
+
* Unique identifier
|
|
1811
1991
|
*/
|
|
1812
|
-
|
|
1992
|
+
id: string;
|
|
1813
1993
|
/**
|
|
1814
|
-
*
|
|
1994
|
+
* User ID (owner of the price)
|
|
1995
|
+
*/
|
|
1996
|
+
userId: string;
|
|
1997
|
+
/**
|
|
1998
|
+
* Currency being priced (e.g., USD, AAPL, BTC)
|
|
1815
1999
|
*/
|
|
1816
2000
|
currency: string;
|
|
1817
2001
|
/**
|
|
1818
|
-
*
|
|
2002
|
+
* Quote currency (pricing currency, e.g., USD, CNY)
|
|
1819
2003
|
*/
|
|
1820
|
-
|
|
2004
|
+
quoteCurrency: string;
|
|
1821
2005
|
/**
|
|
1822
|
-
* Amount
|
|
2006
|
+
* Price amount (corresponds to Beancount Amount.number). Supports up to 15 decimal places.
|
|
1823
2007
|
*/
|
|
1824
|
-
|
|
2008
|
+
amount: number;
|
|
1825
2009
|
/**
|
|
1826
|
-
*
|
|
2010
|
+
* Price date (ISO 8601 format). Represents the date this price was valid.
|
|
1827
2011
|
*/
|
|
1828
|
-
|
|
2012
|
+
date: string;
|
|
1829
2013
|
/**
|
|
1830
|
-
*
|
|
2014
|
+
* Metadata (corresponds to Beancount meta field). Contains source, confidence, note, etc.
|
|
1831
2015
|
*/
|
|
1832
|
-
|
|
2016
|
+
meta: {
|
|
2017
|
+
[key: string]: unknown;
|
|
2018
|
+
};
|
|
1833
2019
|
/**
|
|
1834
|
-
*
|
|
2020
|
+
* Creation timestamp
|
|
1835
2021
|
*/
|
|
1836
|
-
|
|
2022
|
+
createdAt: string;
|
|
1837
2023
|
/**
|
|
1838
|
-
*
|
|
2024
|
+
* Last update timestamp
|
|
1839
2025
|
*/
|
|
1840
|
-
|
|
2026
|
+
updatedAt: string;
|
|
2027
|
+
};
|
|
2028
|
+
|
|
2029
|
+
export type PriceListResponseDto = {
|
|
1841
2030
|
/**
|
|
1842
|
-
*
|
|
2031
|
+
* List of prices
|
|
1843
2032
|
*/
|
|
1844
|
-
|
|
2033
|
+
items: Array<PriceResponseDto>;
|
|
1845
2034
|
/**
|
|
1846
|
-
*
|
|
2035
|
+
* Total number of prices
|
|
1847
2036
|
*/
|
|
1848
|
-
|
|
2037
|
+
total: number;
|
|
1849
2038
|
};
|
|
1850
2039
|
|
|
1851
|
-
|
|
1852
|
-
|
|
1853
|
-
|
|
1854
|
-
|
|
1855
|
-
|
|
1856
|
-
|
|
1857
|
-
|
|
1858
|
-
|
|
1859
|
-
|
|
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
|
+
|
|
2065
|
+
export type CreateRecurringRuleDto = {
|
|
2066
|
+
/**
|
|
2067
|
+
* Rule name (unique per user)
|
|
2068
|
+
*/
|
|
2069
|
+
name: string;
|
|
2070
|
+
/**
|
|
2071
|
+
* Icon emoji
|
|
2072
|
+
*/
|
|
2073
|
+
icon?: string;
|
|
2074
|
+
/**
|
|
2075
|
+
* Recurring frequency
|
|
2076
|
+
*/
|
|
2077
|
+
frequency:
|
|
2078
|
+
| 'WEEKLY'
|
|
2079
|
+
| 'BIWEEKLY'
|
|
2080
|
+
| 'MONTHLY'
|
|
2081
|
+
| 'BIMONTHLY'
|
|
2082
|
+
| 'QUARTERLY'
|
|
2083
|
+
| 'YEARLY'
|
|
2084
|
+
| 'CUSTOM';
|
|
2085
|
+
/**
|
|
2086
|
+
* Expected amount (positive number)
|
|
2087
|
+
*/
|
|
2088
|
+
expectedAmount: number;
|
|
2089
|
+
/**
|
|
2090
|
+
* Expected day of month (1-31)
|
|
2091
|
+
*/
|
|
2092
|
+
expectedDay?: number;
|
|
2093
|
+
/**
|
|
2094
|
+
* Custom interval in days (required for CUSTOM frequency)
|
|
2095
|
+
*/
|
|
2096
|
+
customIntervalDays?: number;
|
|
2097
|
+
/**
|
|
2098
|
+
* Currency code
|
|
2099
|
+
*/
|
|
2100
|
+
currency: string;
|
|
2101
|
+
/**
|
|
2102
|
+
* Payee matching pattern (supports wildcards)
|
|
2103
|
+
*/
|
|
2104
|
+
matchPayeePattern?: string;
|
|
2105
|
+
/**
|
|
2106
|
+
* Amount tolerance percentage (0-1)
|
|
2107
|
+
*/
|
|
2108
|
+
matchAmountTolerance: number;
|
|
2109
|
+
/**
|
|
2110
|
+
* Default expense account for auto-create
|
|
2111
|
+
*/
|
|
2112
|
+
defaultExpenseAccount?: string;
|
|
2113
|
+
/**
|
|
2114
|
+
* Default payment account for auto-create
|
|
2115
|
+
*/
|
|
2116
|
+
defaultPaymentAccount?: string;
|
|
2117
|
+
/**
|
|
2118
|
+
* Default payee for auto-create
|
|
2119
|
+
*/
|
|
2120
|
+
defaultPayee?: string;
|
|
2121
|
+
/**
|
|
2122
|
+
* Auto-create transaction when expected date arrives
|
|
2123
|
+
*/
|
|
2124
|
+
autoCreate: boolean;
|
|
2125
|
+
/**
|
|
2126
|
+
* Rule start date (ISO format)
|
|
2127
|
+
*/
|
|
2128
|
+
startDate?: string;
|
|
2129
|
+
/**
|
|
2130
|
+
* Rule end date (ISO format)
|
|
2131
|
+
*/
|
|
2132
|
+
endDate?: string;
|
|
2133
|
+
};
|
|
2134
|
+
|
|
2135
|
+
/**
|
|
2136
|
+
* Recurring frequency
|
|
2137
|
+
*/
|
|
2138
|
+
export type frequency =
|
|
2139
|
+
| 'WEEKLY'
|
|
2140
|
+
| 'BIWEEKLY'
|
|
2141
|
+
| 'MONTHLY'
|
|
2142
|
+
| 'BIMONTHLY'
|
|
2143
|
+
| 'QUARTERLY'
|
|
1860
2144
|
| 'YEARLY'
|
|
1861
2145
|
| 'CUSTOM';
|
|
1862
2146
|
|
|
@@ -2786,6 +3070,26 @@ export type SignupDto = {
|
|
|
2786
3070
|
turnstileToken?: string;
|
|
2787
3071
|
};
|
|
2788
3072
|
|
|
3073
|
+
export type SignupResponseDto = {
|
|
3074
|
+
/**
|
|
3075
|
+
* JWT auth token
|
|
3076
|
+
*/
|
|
3077
|
+
authToken: string;
|
|
3078
|
+
/**
|
|
3079
|
+
* Auto-generated access token
|
|
3080
|
+
*/
|
|
3081
|
+
accessToken: string;
|
|
3082
|
+
/**
|
|
3083
|
+
* Assigned user role
|
|
3084
|
+
*/
|
|
3085
|
+
role: 'USER' | 'ADMIN' | 'DEMO' | 'INACTIVE' | 'PAID' | 'OPS';
|
|
3086
|
+
};
|
|
3087
|
+
|
|
3088
|
+
/**
|
|
3089
|
+
* Assigned user role
|
|
3090
|
+
*/
|
|
3091
|
+
export type role = 'USER' | 'ADMIN' | 'DEMO' | 'INACTIVE' | 'PAID' | 'OPS';
|
|
3092
|
+
|
|
2789
3093
|
export type UpdateUserSettingDto = {
|
|
2790
3094
|
/**
|
|
2791
3095
|
* Security ID
|
|
@@ -2890,163 +3194,581 @@ export type UpdatePropertyDto = {
|
|
|
2890
3194
|
value: string;
|
|
2891
3195
|
};
|
|
2892
3196
|
|
|
2893
|
-
export type
|
|
3197
|
+
export type CurrencyBalanceDto = {
|
|
2894
3198
|
/**
|
|
2895
|
-
*
|
|
3199
|
+
* ISO 4217 currency code
|
|
2896
3200
|
*/
|
|
2897
|
-
|
|
3201
|
+
currency: string;
|
|
3202
|
+
/**
|
|
3203
|
+
* Balance amount
|
|
3204
|
+
*/
|
|
3205
|
+
balance: string;
|
|
2898
3206
|
};
|
|
2899
3207
|
|
|
2900
|
-
export type
|
|
3208
|
+
export type TimeSeriesPointDto = {
|
|
2901
3209
|
/**
|
|
2902
|
-
*
|
|
3210
|
+
* Date in YYYY-MM-DD format
|
|
2903
3211
|
*/
|
|
2904
|
-
|
|
3212
|
+
date: string;
|
|
2905
3213
|
/**
|
|
2906
|
-
*
|
|
3214
|
+
* Value at this date (in base currency)
|
|
2907
3215
|
*/
|
|
2908
|
-
|
|
2909
|
-
};
|
|
2910
|
-
|
|
2911
|
-
export type ReviewItemPreviewDto = {
|
|
3216
|
+
value: string;
|
|
2912
3217
|
/**
|
|
2913
|
-
*
|
|
3218
|
+
* Change from previous point
|
|
2914
3219
|
*/
|
|
2915
|
-
|
|
3220
|
+
change?: {
|
|
3221
|
+
[key: string]: unknown;
|
|
3222
|
+
};
|
|
2916
3223
|
/**
|
|
2917
|
-
*
|
|
3224
|
+
* Total assets at this date (in base currency)
|
|
2918
3225
|
*/
|
|
2919
|
-
|
|
3226
|
+
assets?: string;
|
|
2920
3227
|
/**
|
|
2921
|
-
*
|
|
3228
|
+
* Total liabilities at this date (in base currency)
|
|
2922
3229
|
*/
|
|
2923
|
-
|
|
3230
|
+
liabilities?: string;
|
|
2924
3231
|
/**
|
|
2925
|
-
*
|
|
3232
|
+
* Multi-currency breakdown for this point
|
|
2926
3233
|
*/
|
|
2927
|
-
|
|
3234
|
+
byCurrency?: Array<CurrencyBalanceDto>;
|
|
3235
|
+
};
|
|
3236
|
+
|
|
3237
|
+
export type TrendSummaryDto = {
|
|
2928
3238
|
/**
|
|
2929
|
-
*
|
|
3239
|
+
* Value at start of period
|
|
2930
3240
|
*/
|
|
2931
|
-
|
|
3241
|
+
startValue: string;
|
|
2932
3242
|
/**
|
|
2933
|
-
*
|
|
3243
|
+
* Value at end of period
|
|
2934
3244
|
*/
|
|
2935
|
-
|
|
3245
|
+
endValue: string;
|
|
2936
3246
|
/**
|
|
2937
|
-
*
|
|
3247
|
+
* Total change over period
|
|
2938
3248
|
*/
|
|
2939
|
-
|
|
3249
|
+
totalChange: string;
|
|
2940
3250
|
/**
|
|
2941
|
-
*
|
|
3251
|
+
* Total change percentage
|
|
2942
3252
|
*/
|
|
2943
|
-
|
|
3253
|
+
totalChangePercentage: string;
|
|
3254
|
+
};
|
|
3255
|
+
|
|
3256
|
+
export type MultiCurrencyPointDto = {
|
|
2944
3257
|
/**
|
|
2945
|
-
*
|
|
3258
|
+
* Date in YYYY-MM-DD format
|
|
2946
3259
|
*/
|
|
2947
|
-
|
|
2948
|
-
| 'DUPLICATE'
|
|
2949
|
-
| 'PAYEE_MATCH'
|
|
2950
|
-
| 'RULE_MATCH'
|
|
2951
|
-
| 'ACCOUNT_VALIDATION'
|
|
2952
|
-
| 'PIPELINE_ERROR';
|
|
3260
|
+
date: string;
|
|
2953
3261
|
/**
|
|
2954
|
-
*
|
|
3262
|
+
* Balances by currency
|
|
2955
3263
|
*/
|
|
2956
|
-
|
|
3264
|
+
byCurrency: Array<CurrencyBalanceDto>;
|
|
2957
3265
|
};
|
|
2958
3266
|
|
|
2959
|
-
|
|
2960
|
-
* Type of branch requiring review
|
|
2961
|
-
*/
|
|
2962
|
-
export type branchType =
|
|
2963
|
-
| 'DUPLICATE'
|
|
2964
|
-
| 'PAYEE_MATCH'
|
|
2965
|
-
| 'RULE_MATCH'
|
|
2966
|
-
| 'ACCOUNT_VALIDATION'
|
|
2967
|
-
| 'PIPELINE_ERROR';
|
|
2968
|
-
|
|
2969
|
-
export type ImportResultDto = {
|
|
3267
|
+
export type PortfolioTrendsResponseDto = {
|
|
2970
3268
|
/**
|
|
2971
|
-
*
|
|
3269
|
+
* Time series data points
|
|
2972
3270
|
*/
|
|
2973
|
-
|
|
3271
|
+
series: Array<TimeSeriesPointDto>;
|
|
2974
3272
|
/**
|
|
2975
|
-
*
|
|
3273
|
+
* Period summary
|
|
2976
3274
|
*/
|
|
2977
|
-
|
|
3275
|
+
summary: TrendSummaryDto;
|
|
2978
3276
|
/**
|
|
2979
|
-
*
|
|
3277
|
+
* Period requested
|
|
2980
3278
|
*/
|
|
2981
|
-
|
|
3279
|
+
period: string;
|
|
2982
3280
|
/**
|
|
2983
|
-
*
|
|
3281
|
+
* Data granularity
|
|
2984
3282
|
*/
|
|
2985
|
-
|
|
3283
|
+
granularity: string;
|
|
2986
3284
|
/**
|
|
2987
|
-
*
|
|
3285
|
+
* Base currency for converted values
|
|
2988
3286
|
*/
|
|
2989
|
-
|
|
3287
|
+
currency: string;
|
|
2990
3288
|
/**
|
|
2991
|
-
*
|
|
3289
|
+
* Multi-currency time series (each point has currency breakdown)
|
|
2992
3290
|
*/
|
|
2993
|
-
|
|
3291
|
+
byCurrency?: Array<MultiCurrencyPointDto>;
|
|
2994
3292
|
/**
|
|
2995
|
-
*
|
|
3293
|
+
* Exchange rate warnings
|
|
2996
3294
|
*/
|
|
2997
|
-
|
|
2998
|
-
[key: string]: unknown;
|
|
2999
|
-
};
|
|
3295
|
+
warnings?: Array<ExchangeRateWarningDto>;
|
|
3000
3296
|
};
|
|
3001
3297
|
|
|
3002
|
-
export type
|
|
3298
|
+
export type CashFlowPointDto = {
|
|
3003
3299
|
/**
|
|
3004
|
-
*
|
|
3005
|
-
*/
|
|
3006
|
-
identified: boolean;
|
|
3007
|
-
/**
|
|
3008
|
-
* Name of the importer that can handle this file
|
|
3300
|
+
* Month key (YYYY-MM)
|
|
3009
3301
|
*/
|
|
3010
|
-
|
|
3302
|
+
month: string;
|
|
3011
3303
|
/**
|
|
3012
|
-
*
|
|
3304
|
+
* Income in base currency (absolute, converted)
|
|
3013
3305
|
*/
|
|
3014
|
-
|
|
3306
|
+
income: string;
|
|
3015
3307
|
/**
|
|
3016
|
-
*
|
|
3308
|
+
* Expense in base currency (absolute, converted)
|
|
3017
3309
|
*/
|
|
3018
|
-
|
|
3310
|
+
expense: string;
|
|
3019
3311
|
/**
|
|
3020
|
-
*
|
|
3312
|
+
* netSavings = income − expense (savings positive)
|
|
3021
3313
|
*/
|
|
3022
|
-
|
|
3314
|
+
netSavings: string;
|
|
3023
3315
|
};
|
|
3024
3316
|
|
|
3025
|
-
export type
|
|
3317
|
+
export type CashFlowTrendSummaryDto = {
|
|
3026
3318
|
/**
|
|
3027
|
-
*
|
|
3319
|
+
* Total income across the period
|
|
3028
3320
|
*/
|
|
3029
|
-
|
|
3321
|
+
totalIncome: string;
|
|
3030
3322
|
/**
|
|
3031
|
-
*
|
|
3323
|
+
* Total expense across the period
|
|
3032
3324
|
*/
|
|
3033
|
-
|
|
3325
|
+
totalExpense: string;
|
|
3034
3326
|
/**
|
|
3035
|
-
*
|
|
3327
|
+
* income − expense across the period
|
|
3036
3328
|
*/
|
|
3037
|
-
|
|
3329
|
+
totalNetSavings: string;
|
|
3038
3330
|
/**
|
|
3039
|
-
*
|
|
3331
|
+
* totalNetSavings divided by the window length (N months, incl. zero-filled)
|
|
3040
3332
|
*/
|
|
3041
|
-
|
|
3333
|
+
averageMonthlyNetSavings: string;
|
|
3334
|
+
};
|
|
3335
|
+
|
|
3336
|
+
export type CashFlowTrendsResponseDto = {
|
|
3042
3337
|
/**
|
|
3043
|
-
*
|
|
3338
|
+
* Monthly cash-flow series (fixed N-month window, zero-filled)
|
|
3044
3339
|
*/
|
|
3045
|
-
|
|
3046
|
-
[key: string]: unknown;
|
|
3047
|
-
};
|
|
3340
|
+
series: Array<CashFlowPointDto>;
|
|
3048
3341
|
/**
|
|
3049
|
-
*
|
|
3342
|
+
* Period totals
|
|
3343
|
+
*/
|
|
3344
|
+
summary: CashFlowTrendSummaryDto;
|
|
3345
|
+
/**
|
|
3346
|
+
* Period requested
|
|
3347
|
+
*/
|
|
3348
|
+
period: string;
|
|
3349
|
+
/**
|
|
3350
|
+
* Data granularity (v1 returns month buckets)
|
|
3351
|
+
*/
|
|
3352
|
+
granularity: string;
|
|
3353
|
+
/**
|
|
3354
|
+
* Base currency for converted values
|
|
3355
|
+
*/
|
|
3356
|
+
currency: string;
|
|
3357
|
+
/**
|
|
3358
|
+
* Exchange rate warnings (e.g. missing rate for a currency)
|
|
3359
|
+
*/
|
|
3360
|
+
warnings?: Array<ExchangeRateWarningDto>;
|
|
3361
|
+
};
|
|
3362
|
+
|
|
3363
|
+
export type GenerateSnapshotBody = unknown;
|
|
3364
|
+
|
|
3365
|
+
export type GenerateSnapshotResponse = unknown;
|
|
3366
|
+
|
|
3367
|
+
export type BackfillSnapshotsBody = unknown;
|
|
3368
|
+
|
|
3369
|
+
export type BackfillSnapshotsResponse = unknown;
|
|
3370
|
+
|
|
3371
|
+
export type CreateBeanEventDto = {
|
|
3372
|
+
/**
|
|
3373
|
+
* Life event date (ISO 8601)
|
|
3374
|
+
*/
|
|
3375
|
+
date: string;
|
|
3376
|
+
/**
|
|
3377
|
+
* Life event type (e.g., "employer", "location", "marital-status") — user-defined, no enum constraint at engine layer
|
|
3378
|
+
*/
|
|
3379
|
+
type: string;
|
|
3380
|
+
/**
|
|
3381
|
+
* Life event description. Empty string is a VALID value (distinct from absence).
|
|
3382
|
+
*/
|
|
3383
|
+
description: string;
|
|
3384
|
+
/**
|
|
3385
|
+
* Product-side metadata (lives in BeanEvent.meta JSON, never in engine Event fields)
|
|
3386
|
+
*/
|
|
3387
|
+
meta?: {
|
|
3388
|
+
[key: string]: unknown;
|
|
3389
|
+
};
|
|
3390
|
+
};
|
|
3391
|
+
|
|
3392
|
+
export type EventResponseDto = {
|
|
3393
|
+
/**
|
|
3394
|
+
* Unique identifier
|
|
3395
|
+
*/
|
|
3396
|
+
id: string;
|
|
3397
|
+
/**
|
|
3398
|
+
* User ID (owner of the life event)
|
|
3399
|
+
*/
|
|
3400
|
+
userId: string;
|
|
3401
|
+
/**
|
|
3402
|
+
* Life event date (ISO 8601 format)
|
|
3403
|
+
*/
|
|
3404
|
+
date: string;
|
|
3405
|
+
/**
|
|
3406
|
+
* Life event type (user-defined, e.g., "employer", "location")
|
|
3407
|
+
*/
|
|
3408
|
+
type: string;
|
|
3409
|
+
/**
|
|
3410
|
+
* Life event description. May be an empty string (a valid value distinct from absence).
|
|
3411
|
+
*/
|
|
3412
|
+
description: string;
|
|
3413
|
+
/**
|
|
3414
|
+
* Product-side metadata (free-form JSON)
|
|
3415
|
+
*/
|
|
3416
|
+
meta: {
|
|
3417
|
+
[key: string]: unknown;
|
|
3418
|
+
};
|
|
3419
|
+
/**
|
|
3420
|
+
* Creation timestamp
|
|
3421
|
+
*/
|
|
3422
|
+
createdAt: string;
|
|
3423
|
+
/**
|
|
3424
|
+
* Last update timestamp. Also emitted as the ETag response header for If-Match optimistic concurrency.
|
|
3425
|
+
*/
|
|
3426
|
+
updatedAt: string;
|
|
3427
|
+
};
|
|
3428
|
+
|
|
3429
|
+
export type EventListResponseDto = {
|
|
3430
|
+
/**
|
|
3431
|
+
* List of life events
|
|
3432
|
+
*/
|
|
3433
|
+
items: Array<EventResponseDto>;
|
|
3434
|
+
/**
|
|
3435
|
+
* Total number of life events matching the query
|
|
3436
|
+
*/
|
|
3437
|
+
total: number;
|
|
3438
|
+
};
|
|
3439
|
+
|
|
3440
|
+
export type UpdateBeanEventDto = {
|
|
3441
|
+
/**
|
|
3442
|
+
* Life event date (ISO 8601)
|
|
3443
|
+
*/
|
|
3444
|
+
date?: string;
|
|
3445
|
+
/**
|
|
3446
|
+
* Life event type (user-defined)
|
|
3447
|
+
*/
|
|
3448
|
+
type?: string;
|
|
3449
|
+
/**
|
|
3450
|
+
* Life event description. Empty string is a VALID value (distinct from absence).
|
|
3451
|
+
*/
|
|
3452
|
+
description?: string;
|
|
3453
|
+
/**
|
|
3454
|
+
* Product-side metadata (free-form JSON)
|
|
3455
|
+
*/
|
|
3456
|
+
meta?: {
|
|
3457
|
+
[key: string]: unknown;
|
|
3458
|
+
};
|
|
3459
|
+
};
|
|
3460
|
+
|
|
3461
|
+
export type OnboardingAccountDto = {
|
|
3462
|
+
/**
|
|
3463
|
+
* Account path (Assets/Liabilities only; format validated by the account service)
|
|
3464
|
+
*/
|
|
3465
|
+
path: string;
|
|
3466
|
+
/**
|
|
3467
|
+
* ISO 4217 currency code (3 letters)
|
|
3468
|
+
*/
|
|
3469
|
+
currency: string;
|
|
3470
|
+
/**
|
|
3471
|
+
* Opening balance as a non-negative Decimal string (e.g. "1000.00")
|
|
3472
|
+
*/
|
|
3473
|
+
openingBalance?: string;
|
|
3474
|
+
/**
|
|
3475
|
+
* Platform ID to bind the account to (references Platform.id); omit for unbound
|
|
3476
|
+
*/
|
|
3477
|
+
platformId?: string;
|
|
3478
|
+
};
|
|
3479
|
+
|
|
3480
|
+
export type OnboardingDto = {
|
|
3481
|
+
/**
|
|
3482
|
+
* Asset/Liability accounts to register with opening balances
|
|
3483
|
+
*/
|
|
3484
|
+
accounts?: Array<OnboardingAccountDto>;
|
|
3485
|
+
/**
|
|
3486
|
+
* Skip asset registration; only bootstrap the core account set
|
|
3487
|
+
*/
|
|
3488
|
+
skipAssetRegistration?: boolean;
|
|
3489
|
+
};
|
|
3490
|
+
|
|
3491
|
+
export type ActualBalanceDto = {
|
|
3492
|
+
/**
|
|
3493
|
+
* Actual balance amount as a decimal string (preserves precision for tolerance inference).
|
|
3494
|
+
*/
|
|
3495
|
+
amount: string;
|
|
3496
|
+
/**
|
|
3497
|
+
* Currency code (ISO 4217 or commodity ticker).
|
|
3498
|
+
*/
|
|
3499
|
+
ccy: string;
|
|
3500
|
+
};
|
|
3501
|
+
|
|
3502
|
+
export type ComputeReconciliationDto = {
|
|
3503
|
+
/**
|
|
3504
|
+
* BeanAccount id to reconcile.
|
|
3505
|
+
*/
|
|
3506
|
+
accountId: string;
|
|
3507
|
+
/**
|
|
3508
|
+
* Assertion date (ISO 8601, e.g. "2026-07-24").
|
|
3509
|
+
*/
|
|
3510
|
+
asOfDate: string;
|
|
3511
|
+
/**
|
|
3512
|
+
* Actual balance from the external statement.
|
|
3513
|
+
*/
|
|
3514
|
+
actualBalance: ActualBalanceDto;
|
|
3515
|
+
};
|
|
3516
|
+
|
|
3517
|
+
export type ReconciliationComputeResultDto = {
|
|
3518
|
+
accountId: string;
|
|
3519
|
+
asOfDate: string;
|
|
3520
|
+
/**
|
|
3521
|
+
* System-computed book balance (decimal string).
|
|
3522
|
+
*/
|
|
3523
|
+
bookBalance: string;
|
|
3524
|
+
/**
|
|
3525
|
+
* User-entered actual balance (decimal string).
|
|
3526
|
+
*/
|
|
3527
|
+
actualBalance: string;
|
|
3528
|
+
currency: string;
|
|
3529
|
+
/**
|
|
3530
|
+
* Diff = book − actual (decimal string).
|
|
3531
|
+
*/
|
|
3532
|
+
diff: string;
|
|
3533
|
+
/**
|
|
3534
|
+
* Applied tolerance (decimal string).
|
|
3535
|
+
*/
|
|
3536
|
+
tolerance: string;
|
|
3537
|
+
/**
|
|
3538
|
+
* true when |diff| ≤ tolerance.
|
|
3539
|
+
*/
|
|
3540
|
+
withinTolerance: boolean;
|
|
3541
|
+
/**
|
|
3542
|
+
* Suggested next action: assert when within tolerance, pad otherwise.
|
|
3543
|
+
*/
|
|
3544
|
+
suggestedAction: 'assert' | 'pad';
|
|
3545
|
+
};
|
|
3546
|
+
|
|
3547
|
+
/**
|
|
3548
|
+
* Suggested next action: assert when within tolerance, pad otherwise.
|
|
3549
|
+
*/
|
|
3550
|
+
export type suggestedAction = 'assert' | 'pad';
|
|
3551
|
+
|
|
3552
|
+
export type AssertReconciliationDto = {
|
|
3553
|
+
/**
|
|
3554
|
+
* BeanAccount id to reconcile.
|
|
3555
|
+
*/
|
|
3556
|
+
accountId: string;
|
|
3557
|
+
/**
|
|
3558
|
+
* Assertion date (ISO 8601, e.g. "2026-07-24").
|
|
3559
|
+
*/
|
|
3560
|
+
asOfDate: string;
|
|
3561
|
+
/**
|
|
3562
|
+
* Actual balance from the external statement.
|
|
3563
|
+
*/
|
|
3564
|
+
actualBalance: ActualBalanceDto;
|
|
3565
|
+
/**
|
|
3566
|
+
* Optional explicit tolerance override. Omit to infer from amount precision (Beancount default).
|
|
3567
|
+
*/
|
|
3568
|
+
tolerance?: string;
|
|
3569
|
+
};
|
|
3570
|
+
|
|
3571
|
+
export type ReconciliationRecordDto = {
|
|
3572
|
+
id: string;
|
|
3573
|
+
accountId: string;
|
|
3574
|
+
date: string;
|
|
3575
|
+
/**
|
|
3576
|
+
* Asserted (actual) amount.
|
|
3577
|
+
*/
|
|
3578
|
+
amount: string;
|
|
3579
|
+
currency: string;
|
|
3580
|
+
tolerance?: string;
|
|
3581
|
+
/**
|
|
3582
|
+
* book − actual.
|
|
3583
|
+
*/
|
|
3584
|
+
diffAmount?: string;
|
|
3585
|
+
diffCurrency?: string;
|
|
3586
|
+
createdAt: string;
|
|
3587
|
+
};
|
|
3588
|
+
|
|
3589
|
+
export type PadReconciliationDto = {
|
|
3590
|
+
/**
|
|
3591
|
+
* BeanAccount id to reconcile.
|
|
3592
|
+
*/
|
|
3593
|
+
accountId: string;
|
|
3594
|
+
/**
|
|
3595
|
+
* Assertion date (ISO 8601, e.g. "2026-07-24").
|
|
3596
|
+
*/
|
|
3597
|
+
asOfDate: string;
|
|
3598
|
+
/**
|
|
3599
|
+
* Actual balance from the external statement.
|
|
3600
|
+
*/
|
|
3601
|
+
actualBalance: ActualBalanceDto;
|
|
3602
|
+
/**
|
|
3603
|
+
* Pad source account. Defaults to Equity:Opening-Balances (official Beancount convention).
|
|
3604
|
+
*/
|
|
3605
|
+
sourceAccount?: string;
|
|
3606
|
+
};
|
|
3607
|
+
|
|
3608
|
+
export type PadResultDto = {
|
|
3609
|
+
/**
|
|
3610
|
+
* Created pad adjusting transaction id.
|
|
3611
|
+
*/
|
|
3612
|
+
transactionId: string;
|
|
3613
|
+
};
|
|
3614
|
+
|
|
3615
|
+
export type FileImportDto = {
|
|
3616
|
+
/**
|
|
3617
|
+
* Bill file to import (CSV, PDF, OFX, etc.)
|
|
3618
|
+
*/
|
|
3619
|
+
file: Blob | File;
|
|
3620
|
+
};
|
|
3621
|
+
|
|
3622
|
+
export type ImportErrorDto = {
|
|
3623
|
+
/**
|
|
3624
|
+
* Index of failed transaction in the file
|
|
3625
|
+
*/
|
|
3626
|
+
index: number;
|
|
3627
|
+
/**
|
|
3628
|
+
* Error message
|
|
3629
|
+
*/
|
|
3630
|
+
error: string;
|
|
3631
|
+
};
|
|
3632
|
+
|
|
3633
|
+
export type ReviewItemPreviewDto = {
|
|
3634
|
+
/**
|
|
3635
|
+
* Index in the import batch (for tracking)
|
|
3636
|
+
*/
|
|
3637
|
+
index: number;
|
|
3638
|
+
/**
|
|
3639
|
+
* Transaction date (ISO format)
|
|
3640
|
+
*/
|
|
3641
|
+
date: string;
|
|
3642
|
+
/**
|
|
3643
|
+
* Transaction amount (absolute value)
|
|
3644
|
+
*/
|
|
3645
|
+
amount?: number;
|
|
3646
|
+
/**
|
|
3647
|
+
* Currency code
|
|
3648
|
+
*/
|
|
3649
|
+
currency?: string;
|
|
3650
|
+
/**
|
|
3651
|
+
* Transaction narration/description
|
|
3652
|
+
*/
|
|
3653
|
+
narration: string;
|
|
3654
|
+
/**
|
|
3655
|
+
* Payee name
|
|
3656
|
+
*/
|
|
3657
|
+
payee?: string;
|
|
3658
|
+
/**
|
|
3659
|
+
* Inferred category from rule matching
|
|
3660
|
+
*/
|
|
3661
|
+
category?: string;
|
|
3662
|
+
/**
|
|
3663
|
+
* Confidence score for the match (0-1)
|
|
3664
|
+
*/
|
|
3665
|
+
confidence?: number;
|
|
3666
|
+
/**
|
|
3667
|
+
* Type of branch requiring review
|
|
3668
|
+
*/
|
|
3669
|
+
branchType?:
|
|
3670
|
+
| 'DUPLICATE'
|
|
3671
|
+
| 'PAYEE_MATCH'
|
|
3672
|
+
| 'RULE_MATCH'
|
|
3673
|
+
| 'ACCOUNT_VALIDATION'
|
|
3674
|
+
| 'PIPELINE_ERROR';
|
|
3675
|
+
/**
|
|
3676
|
+
* Human-readable reasons for requiring review
|
|
3677
|
+
*/
|
|
3678
|
+
reasons?: Array<string>;
|
|
3679
|
+
};
|
|
3680
|
+
|
|
3681
|
+
/**
|
|
3682
|
+
* Type of branch requiring review
|
|
3683
|
+
*/
|
|
3684
|
+
export type branchType =
|
|
3685
|
+
| 'DUPLICATE'
|
|
3686
|
+
| 'PAYEE_MATCH'
|
|
3687
|
+
| 'RULE_MATCH'
|
|
3688
|
+
| 'ACCOUNT_VALIDATION'
|
|
3689
|
+
| 'PIPELINE_ERROR';
|
|
3690
|
+
|
|
3691
|
+
export type ImportResultDto = {
|
|
3692
|
+
/**
|
|
3693
|
+
* Number of successfully imported transactions
|
|
3694
|
+
*/
|
|
3695
|
+
imported: number;
|
|
3696
|
+
/**
|
|
3697
|
+
* Number of failed transactions
|
|
3698
|
+
*/
|
|
3699
|
+
failed: number;
|
|
3700
|
+
/**
|
|
3701
|
+
* Number of skipped transactions (high confidence duplicates, auto-skipped)
|
|
3702
|
+
*/
|
|
3703
|
+
skipped: number;
|
|
3704
|
+
/**
|
|
3705
|
+
* Number of transactions pending review (medium confidence duplicates)
|
|
3706
|
+
*/
|
|
3707
|
+
pendingReview: number;
|
|
3708
|
+
/**
|
|
3709
|
+
* Array of error details for failed transactions
|
|
3710
|
+
*/
|
|
3711
|
+
errors: Array<ImportErrorDto>;
|
|
3712
|
+
/**
|
|
3713
|
+
* Array of transactions pending review with preview data. Contains essential information for displaying in the import preview UI.
|
|
3714
|
+
*/
|
|
3715
|
+
reviewItems?: Array<ReviewItemPreviewDto>;
|
|
3716
|
+
/**
|
|
3717
|
+
* Array of imported transactions (optional, for debugging)
|
|
3718
|
+
*/
|
|
3719
|
+
transactions?: {
|
|
3720
|
+
[key: string]: unknown;
|
|
3721
|
+
};
|
|
3722
|
+
};
|
|
3723
|
+
|
|
3724
|
+
export type IdentifyResultDto = {
|
|
3725
|
+
/**
|
|
3726
|
+
* Whether the file was successfully identified
|
|
3727
|
+
*/
|
|
3728
|
+
identified: boolean;
|
|
3729
|
+
/**
|
|
3730
|
+
* Name of the importer that can handle this file
|
|
3731
|
+
*/
|
|
3732
|
+
importerName?: string;
|
|
3733
|
+
/**
|
|
3734
|
+
* Unique identifier of the importer
|
|
3735
|
+
*/
|
|
3736
|
+
importerId?: string;
|
|
3737
|
+
/**
|
|
3738
|
+
* Default account used by this importer
|
|
3739
|
+
*/
|
|
3740
|
+
account?: string;
|
|
3741
|
+
/**
|
|
3742
|
+
* Message when file cannot be identified
|
|
3743
|
+
*/
|
|
3744
|
+
message?: string;
|
|
3745
|
+
};
|
|
3746
|
+
|
|
3747
|
+
export type MapperDefaultsDto = {
|
|
3748
|
+
/**
|
|
3749
|
+
* Source account for transactions (Beancount format)
|
|
3750
|
+
*/
|
|
3751
|
+
sourceAccount: string;
|
|
3752
|
+
/**
|
|
3753
|
+
* Default currency (ISO 4217 code)
|
|
3754
|
+
*/
|
|
3755
|
+
currency: string;
|
|
3756
|
+
/**
|
|
3757
|
+
* Default expense account
|
|
3758
|
+
*/
|
|
3759
|
+
expenseAccount?: string;
|
|
3760
|
+
/**
|
|
3761
|
+
* Default income account
|
|
3762
|
+
*/
|
|
3763
|
+
incomeAccount?: string;
|
|
3764
|
+
/**
|
|
3765
|
+
* Filename prefix to account mapping (for HK importers). Maps filename prefix to Beancount account path.
|
|
3766
|
+
*/
|
|
3767
|
+
accountMapping?: {
|
|
3768
|
+
[key: string]: unknown;
|
|
3769
|
+
};
|
|
3770
|
+
/**
|
|
3771
|
+
* Convert CNY to CNH (offshore RMB) (for HK importers). Default: false.
|
|
3050
3772
|
*/
|
|
3051
3773
|
useCnh?: boolean;
|
|
3052
3774
|
/**
|
|
@@ -3159,121 +3881,33 @@ export type UpdateMapperDefaultsDto = {
|
|
|
3159
3881
|
*/
|
|
3160
3882
|
currency?: string;
|
|
3161
3883
|
/**
|
|
3162
|
-
* Default expense account (optional)
|
|
3163
|
-
*/
|
|
3164
|
-
expenseAccount?: string;
|
|
3165
|
-
/**
|
|
3166
|
-
* Default income account (optional)
|
|
3167
|
-
*/
|
|
3168
|
-
incomeAccount?: string;
|
|
3169
|
-
/**
|
|
3170
|
-
* Payment method to source account mapping. Maps payment method keywords to Beancount account paths. Used by Alipay/WeChat importers to determine sourceAccount based on payment method (e.g., HuaBei, CreditCard).
|
|
3171
|
-
*/
|
|
3172
|
-
methodAccountMapping?: {
|
|
3173
|
-
[key: string]: unknown;
|
|
3174
|
-
};
|
|
3175
|
-
};
|
|
3176
|
-
|
|
3177
|
-
export type UpdateConfigDataDto = {
|
|
3178
|
-
/**
|
|
3179
|
-
* Mapper defaults configuration
|
|
3180
|
-
*/
|
|
3181
|
-
defaults?: UpdateMapperDefaultsDto;
|
|
3182
|
-
};
|
|
3183
|
-
|
|
3184
|
-
export type UpdateImporterConfigDto = {
|
|
3185
|
-
/**
|
|
3186
|
-
* Configuration data (v1 schema)
|
|
3187
|
-
*/
|
|
3188
|
-
data?: UpdateConfigDataDto;
|
|
3189
|
-
};
|
|
3190
|
-
|
|
3191
|
-
export type CreatePlatformDto = {
|
|
3192
|
-
/**
|
|
3193
|
-
* Platform name
|
|
3194
|
-
*/
|
|
3195
|
-
name: string;
|
|
3196
|
-
/**
|
|
3197
|
-
* Platform canonical identifier (lowercase, kebab-case)
|
|
3198
|
-
*/
|
|
3199
|
-
canonical: string;
|
|
3200
|
-
/**
|
|
3201
|
-
* Platform aliases (multi-language names for lookup)
|
|
3202
|
-
*/
|
|
3203
|
-
aliases: Array<string>;
|
|
3204
|
-
/**
|
|
3205
|
-
* Platform URL
|
|
3206
|
-
*/
|
|
3207
|
-
url: string;
|
|
3208
|
-
/**
|
|
3209
|
-
* Platform type
|
|
3210
|
-
*/
|
|
3211
|
-
type:
|
|
3212
|
-
| 'BANK'
|
|
3213
|
-
| 'BROKERAGE'
|
|
3214
|
-
| 'CRYPTO_EXCHANGE'
|
|
3215
|
-
| 'PAYMENT'
|
|
3216
|
-
| 'INVESTMENT'
|
|
3217
|
-
| 'INSURANCE'
|
|
3218
|
-
| 'OTHER';
|
|
3219
|
-
/**
|
|
3220
|
-
* Platform logo URL
|
|
3221
|
-
*/
|
|
3222
|
-
logoUrl?: string;
|
|
3223
|
-
/**
|
|
3224
|
-
* Whether the platform is active
|
|
3225
|
-
*/
|
|
3226
|
-
isActive?: boolean;
|
|
3227
|
-
};
|
|
3228
|
-
|
|
3229
|
-
/**
|
|
3230
|
-
* Platform type
|
|
3231
|
-
*/
|
|
3232
|
-
export type type3 =
|
|
3233
|
-
| 'BANK'
|
|
3234
|
-
| 'BROKERAGE'
|
|
3235
|
-
| 'CRYPTO_EXCHANGE'
|
|
3236
|
-
| 'PAYMENT'
|
|
3237
|
-
| 'INVESTMENT'
|
|
3238
|
-
| 'INSURANCE'
|
|
3239
|
-
| 'OTHER';
|
|
3240
|
-
|
|
3241
|
-
export type UpdatePlatformDto = {
|
|
3242
|
-
/**
|
|
3243
|
-
* Platform name
|
|
3244
|
-
*/
|
|
3245
|
-
name?: string;
|
|
3246
|
-
/**
|
|
3247
|
-
* Platform canonical identifier (lowercase, kebab-case)
|
|
3248
|
-
*/
|
|
3249
|
-
canonical?: string;
|
|
3250
|
-
/**
|
|
3251
|
-
* Platform aliases (multi-language names for lookup)
|
|
3884
|
+
* Default expense account (optional)
|
|
3252
3885
|
*/
|
|
3253
|
-
|
|
3886
|
+
expenseAccount?: string;
|
|
3254
3887
|
/**
|
|
3255
|
-
*
|
|
3888
|
+
* Default income account (optional)
|
|
3256
3889
|
*/
|
|
3257
|
-
|
|
3890
|
+
incomeAccount?: string;
|
|
3258
3891
|
/**
|
|
3259
|
-
*
|
|
3892
|
+
* Payment method to source account mapping. Maps payment method keywords to Beancount account paths. Used by Alipay/WeChat importers to determine sourceAccount based on payment method (e.g., HuaBei, CreditCard).
|
|
3260
3893
|
*/
|
|
3261
|
-
|
|
3262
|
-
|
|
3263
|
-
|
|
3264
|
-
|
|
3265
|
-
|
|
3266
|
-
|
|
3267
|
-
| 'INSURANCE'
|
|
3268
|
-
| 'OTHER';
|
|
3894
|
+
methodAccountMapping?: {
|
|
3895
|
+
[key: string]: unknown;
|
|
3896
|
+
};
|
|
3897
|
+
};
|
|
3898
|
+
|
|
3899
|
+
export type UpdateConfigDataDto = {
|
|
3269
3900
|
/**
|
|
3270
|
-
*
|
|
3901
|
+
* Mapper defaults configuration
|
|
3271
3902
|
*/
|
|
3272
|
-
|
|
3903
|
+
defaults?: UpdateMapperDefaultsDto;
|
|
3904
|
+
};
|
|
3905
|
+
|
|
3906
|
+
export type UpdateImporterConfigDto = {
|
|
3273
3907
|
/**
|
|
3274
|
-
*
|
|
3908
|
+
* Configuration data (v1 schema)
|
|
3275
3909
|
*/
|
|
3276
|
-
|
|
3910
|
+
data?: UpdateConfigDataDto;
|
|
3277
3911
|
};
|
|
3278
3912
|
|
|
3279
3913
|
export type ProviderSyncConfigDto = {
|
|
@@ -3297,6 +3931,10 @@ export type ProviderSyncConfigDto = {
|
|
|
3297
3931
|
* Filter pending transactions
|
|
3298
3932
|
*/
|
|
3299
3933
|
filterPending?: boolean;
|
|
3934
|
+
/**
|
|
3935
|
+
* External account ID for per-batch providers (e.g. GoCardless). Overrides sourceAccount when an ExternalAccountLink mapping exists.
|
|
3936
|
+
*/
|
|
3937
|
+
externalAccountId?: string;
|
|
3300
3938
|
};
|
|
3301
3939
|
|
|
3302
3940
|
export type ProviderSyncDto = {
|
|
@@ -3352,8 +3990,65 @@ export type SupportedProvidersResponseDto = {
|
|
|
3352
3990
|
providers: Array<string>;
|
|
3353
3991
|
};
|
|
3354
3992
|
|
|
3993
|
+
export type CreateExternalAccountLinkDto = {
|
|
3994
|
+
/**
|
|
3995
|
+
* Open Banking provider (whitelist)
|
|
3996
|
+
*/
|
|
3997
|
+
provider:
|
|
3998
|
+
| 'plaid'
|
|
3999
|
+
| 'teller'
|
|
4000
|
+
| 'truelayer'
|
|
4001
|
+
| 'gocardless'
|
|
4002
|
+
| 'simplefin'
|
|
4003
|
+
| 'yodlee'
|
|
4004
|
+
| 'beancount-direct'
|
|
4005
|
+
| 'parsed-bill';
|
|
4006
|
+
/**
|
|
4007
|
+
* External account ID from the provider
|
|
4008
|
+
*/
|
|
4009
|
+
externalAccountId: string;
|
|
4010
|
+
/**
|
|
4011
|
+
* Target BeanAccount ID (must belong to the JWT user)
|
|
4012
|
+
*/
|
|
4013
|
+
beanAccountId: string;
|
|
4014
|
+
};
|
|
4015
|
+
|
|
4016
|
+
/**
|
|
4017
|
+
* Open Banking provider (whitelist)
|
|
4018
|
+
*/
|
|
4019
|
+
export type provider =
|
|
4020
|
+
| 'plaid'
|
|
4021
|
+
| 'teller'
|
|
4022
|
+
| 'truelayer'
|
|
4023
|
+
| 'gocardless'
|
|
4024
|
+
| 'simplefin'
|
|
4025
|
+
| 'yodlee'
|
|
4026
|
+
| 'beancount-direct'
|
|
4027
|
+
| 'parsed-bill';
|
|
4028
|
+
|
|
4029
|
+
export type ExternalAccountLinkResponseDto = {
|
|
4030
|
+
id: string;
|
|
4031
|
+
provider: string;
|
|
4032
|
+
externalAccountId: string;
|
|
4033
|
+
beanAccountId: string;
|
|
4034
|
+
isActive: boolean;
|
|
4035
|
+
createdAt: string;
|
|
4036
|
+
updatedAt: string;
|
|
4037
|
+
};
|
|
4038
|
+
|
|
4039
|
+
export type ExternalAccountLinkListResponseDto = {
|
|
4040
|
+
items: Array<ExternalAccountLinkResponseDto>;
|
|
4041
|
+
total: number;
|
|
4042
|
+
/**
|
|
4043
|
+
* Filter by provider (query param)
|
|
4044
|
+
*/
|
|
4045
|
+
provider?: string;
|
|
4046
|
+
};
|
|
4047
|
+
|
|
3355
4048
|
export type ParserTelemetryReportDto = unknown;
|
|
3356
4049
|
|
|
4050
|
+
export type UncoveredFormatMissDto = unknown;
|
|
4051
|
+
|
|
3357
4052
|
export type ProcessNlpDto = {
|
|
3358
4053
|
/**
|
|
3359
4054
|
* Natural language text describing a transaction (Chinese)
|
|
@@ -3870,74 +4565,260 @@ export type NlpResponseDto = {
|
|
|
3870
4565
|
*/
|
|
3871
4566
|
confidence?: number;
|
|
3872
4567
|
/**
|
|
3873
|
-
* Confidence threshold for automatic creation (default: 0.75). When confidence < threshold, action will be "confirm" requiring user verification.
|
|
4568
|
+
* Confidence threshold for automatic creation (default: 0.75). When confidence < threshold, action will be "confirm" requiring user verification.
|
|
4569
|
+
*/
|
|
4570
|
+
confidenceThreshold?: number;
|
|
4571
|
+
/**
|
|
4572
|
+
* Recurring transaction match info (when action is "created"). Contains match details when transaction matches a pending expected transaction.
|
|
4573
|
+
*/
|
|
4574
|
+
recurringMatch?: RecurringMatchInfoDto;
|
|
4575
|
+
/**
|
|
4576
|
+
* Recurring rule creation suggestion (when action is "created"). Contains suggestion to create a recurring rule based on detected patterns. Only present when no existing rule matched and similar historical transactions were found.
|
|
4577
|
+
*/
|
|
4578
|
+
recurringSuggestion?: RecurringSuggestionDto;
|
|
4579
|
+
/**
|
|
4580
|
+
* Suggested accounts for this transaction. Contains recommended source and destination accounts based on the detected intent and rules.
|
|
4581
|
+
*/
|
|
4582
|
+
suggestedAccounts?: NlpSuggestedAccountsDto;
|
|
4583
|
+
/**
|
|
4584
|
+
* Default accounts for the user/region. These are fallback accounts used when no specific suggestion is available.
|
|
4585
|
+
*/
|
|
4586
|
+
defaultAccounts?: NlpDefaultAccountsDto;
|
|
4587
|
+
};
|
|
4588
|
+
|
|
4589
|
+
/**
|
|
4590
|
+
* Response status
|
|
4591
|
+
*/
|
|
4592
|
+
export type status4 = 'success' | 'pending' | 'error';
|
|
4593
|
+
|
|
4594
|
+
/**
|
|
4595
|
+
* Action taken or requested
|
|
4596
|
+
*/
|
|
4597
|
+
export type action2 =
|
|
4598
|
+
| 'created'
|
|
4599
|
+
| 'ask'
|
|
4600
|
+
| 'confirm'
|
|
4601
|
+
| 'confirm_duplicate'
|
|
4602
|
+
| 'confirm_rule'
|
|
4603
|
+
| 'confirm_account'
|
|
4604
|
+
| 'confirm_payee'
|
|
4605
|
+
| 'cancel';
|
|
4606
|
+
|
|
4607
|
+
/**
|
|
4608
|
+
* Transaction intent detected by EntityRouter (v6.0: 5 core intents). Frontend uses this to render scenario-specific form fields.
|
|
4609
|
+
*/
|
|
4610
|
+
export type intent = 'expense' | 'asset' | 'income' | 'liability' | 'equity';
|
|
4611
|
+
|
|
4612
|
+
/**
|
|
4613
|
+
* Asset sub-type (only present when intent is "asset"). Determines which asset-related form to render.
|
|
4614
|
+
*/
|
|
4615
|
+
export type assetSubType = 'transfer' | 'banking' | 'investment';
|
|
4616
|
+
|
|
4617
|
+
/**
|
|
4618
|
+
* Liability sub-type (only present when intent is "liability"). borrow: borrowing money (Liabilities → Assets), repay: repaying debt (Assets → Liabilities).
|
|
4619
|
+
*/
|
|
4620
|
+
export type liabilitySubType = 'borrow' | 'repay';
|
|
4621
|
+
|
|
4622
|
+
/**
|
|
4623
|
+
* Equity sub-type (only present when intent is "equity"). opening: account opening balance (Equity → Assets), adjustment: balance correction.
|
|
4624
|
+
*/
|
|
4625
|
+
export type equitySubType = 'opening' | 'adjustment';
|
|
4626
|
+
|
|
4627
|
+
export type PlatformListItemDto = {
|
|
4628
|
+
/**
|
|
4629
|
+
* Global platform ID
|
|
4630
|
+
*/
|
|
4631
|
+
id: string;
|
|
4632
|
+
/**
|
|
4633
|
+
* Platform name
|
|
4634
|
+
*/
|
|
4635
|
+
name: string;
|
|
4636
|
+
/**
|
|
4637
|
+
* Platform URL
|
|
4638
|
+
*/
|
|
4639
|
+
url: string;
|
|
4640
|
+
/**
|
|
4641
|
+
* Platform type
|
|
4642
|
+
*/
|
|
4643
|
+
type:
|
|
4644
|
+
| 'BANK'
|
|
4645
|
+
| 'BROKERAGE'
|
|
4646
|
+
| 'CRYPTO_EXCHANGE'
|
|
4647
|
+
| 'PAYMENT'
|
|
4648
|
+
| 'INVESTMENT'
|
|
4649
|
+
| 'INSURANCE'
|
|
4650
|
+
| 'OTHER';
|
|
4651
|
+
/**
|
|
4652
|
+
* Canonical identifier in ACCOUNT_RE format (e.g., "icbc")
|
|
4653
|
+
*/
|
|
4654
|
+
canonical: string;
|
|
4655
|
+
/**
|
|
4656
|
+
* Suggested path segment — canonical with first char uppercased (ACC_COMP_NAME_RE)
|
|
4657
|
+
*/
|
|
4658
|
+
suggestedSegment: string;
|
|
4659
|
+
/**
|
|
4660
|
+
* Logo URL
|
|
4661
|
+
*/
|
|
4662
|
+
logoUrl: string | null;
|
|
4663
|
+
/**
|
|
4664
|
+
* Whether user has accounts using this platform
|
|
4665
|
+
*/
|
|
4666
|
+
isBound: boolean;
|
|
4667
|
+
};
|
|
4668
|
+
|
|
4669
|
+
/**
|
|
4670
|
+
* Platform type
|
|
4671
|
+
*/
|
|
4672
|
+
export type type3 =
|
|
4673
|
+
| 'BANK'
|
|
4674
|
+
| 'BROKERAGE'
|
|
4675
|
+
| 'CRYPTO_EXCHANGE'
|
|
4676
|
+
| 'PAYMENT'
|
|
4677
|
+
| 'INVESTMENT'
|
|
4678
|
+
| 'INSURANCE'
|
|
4679
|
+
| 'OTHER';
|
|
4680
|
+
|
|
4681
|
+
export type PlatformMatchResultDto = {
|
|
4682
|
+
/**
|
|
4683
|
+
* Global platform ID
|
|
4684
|
+
*/
|
|
4685
|
+
id: string;
|
|
4686
|
+
/**
|
|
4687
|
+
* Platform name (e.g., "ICBC")
|
|
4688
|
+
*/
|
|
4689
|
+
name: string;
|
|
4690
|
+
/**
|
|
4691
|
+
* Canonical identifier in ACCOUNT_RE format (e.g., "icbc")
|
|
4692
|
+
*/
|
|
4693
|
+
canonical: string;
|
|
4694
|
+
/**
|
|
4695
|
+
* Platform type
|
|
4696
|
+
*/
|
|
4697
|
+
type:
|
|
4698
|
+
| 'BANK'
|
|
4699
|
+
| 'BROKERAGE'
|
|
4700
|
+
| 'CRYPTO_EXCHANGE'
|
|
4701
|
+
| 'PAYMENT'
|
|
4702
|
+
| 'INVESTMENT'
|
|
4703
|
+
| 'INSURANCE'
|
|
4704
|
+
| 'OTHER';
|
|
4705
|
+
/**
|
|
4706
|
+
* Suggested path segment — canonical, already in ACCOUNT_RE format
|
|
4707
|
+
*/
|
|
4708
|
+
suggestedSegment: string;
|
|
4709
|
+
/**
|
|
4710
|
+
* Logo URL
|
|
4711
|
+
*/
|
|
4712
|
+
logoUrl: string | null;
|
|
4713
|
+
/**
|
|
4714
|
+
* How this row matched: 'exact' > 'prefix' > 'substring'
|
|
4715
|
+
*/
|
|
4716
|
+
matchType: 'exact' | 'prefix' | 'substring';
|
|
4717
|
+
};
|
|
4718
|
+
|
|
4719
|
+
/**
|
|
4720
|
+
* How this row matched: 'exact' > 'prefix' > 'substring'
|
|
4721
|
+
*/
|
|
4722
|
+
export type matchType = 'exact' | 'prefix' | 'substring';
|
|
4723
|
+
|
|
4724
|
+
export type PlatformMatchResponseDto = {
|
|
4725
|
+
/**
|
|
4726
|
+
* Ranked matches, best tier first (at most 10 rows)
|
|
4727
|
+
*/
|
|
4728
|
+
platforms: Array<PlatformMatchResultDto>;
|
|
4729
|
+
/**
|
|
4730
|
+
* Overall match quality — top row's tier, or 'none' when no hits
|
|
4731
|
+
*/
|
|
4732
|
+
matchType: 'none' | 'exact' | 'prefix' | 'substring';
|
|
4733
|
+
/**
|
|
4734
|
+
* Total matches before LIMIT (truncation transparency)
|
|
4735
|
+
*/
|
|
4736
|
+
total: number;
|
|
4737
|
+
/**
|
|
4738
|
+
* true when total > platforms.length (more matches exist)
|
|
4739
|
+
*/
|
|
4740
|
+
hasMore: boolean;
|
|
4741
|
+
};
|
|
4742
|
+
|
|
4743
|
+
/**
|
|
4744
|
+
* Overall match quality — top row's tier, or 'none' when no hits
|
|
4745
|
+
*/
|
|
4746
|
+
export type matchType2 = 'none' | 'exact' | 'prefix' | 'substring';
|
|
4747
|
+
|
|
4748
|
+
export type CreatePlatformDto = {
|
|
4749
|
+
/**
|
|
4750
|
+
* Platform name
|
|
4751
|
+
*/
|
|
4752
|
+
name: string;
|
|
4753
|
+
/**
|
|
4754
|
+
* Platform canonical identifier (lowercase, kebab-case)
|
|
4755
|
+
*/
|
|
4756
|
+
canonical: string;
|
|
4757
|
+
/**
|
|
4758
|
+
* Platform aliases (multi-language names for lookup)
|
|
4759
|
+
*/
|
|
4760
|
+
aliases: Array<string>;
|
|
4761
|
+
/**
|
|
4762
|
+
* Platform URL
|
|
4763
|
+
*/
|
|
4764
|
+
url: string;
|
|
4765
|
+
/**
|
|
4766
|
+
* Platform type
|
|
4767
|
+
*/
|
|
4768
|
+
type:
|
|
4769
|
+
| 'BANK'
|
|
4770
|
+
| 'BROKERAGE'
|
|
4771
|
+
| 'CRYPTO_EXCHANGE'
|
|
4772
|
+
| 'PAYMENT'
|
|
4773
|
+
| 'INVESTMENT'
|
|
4774
|
+
| 'INSURANCE'
|
|
4775
|
+
| 'OTHER';
|
|
4776
|
+
/**
|
|
4777
|
+
* Platform logo URL
|
|
4778
|
+
*/
|
|
4779
|
+
logoUrl?: string;
|
|
4780
|
+
/**
|
|
4781
|
+
* Whether the platform is active
|
|
4782
|
+
*/
|
|
4783
|
+
isActive?: boolean;
|
|
4784
|
+
};
|
|
4785
|
+
|
|
4786
|
+
export type UpdatePlatformDto = {
|
|
4787
|
+
/**
|
|
4788
|
+
* Platform name
|
|
3874
4789
|
*/
|
|
3875
|
-
|
|
4790
|
+
name?: string;
|
|
3876
4791
|
/**
|
|
3877
|
-
*
|
|
4792
|
+
* Platform canonical identifier (lowercase, kebab-case)
|
|
3878
4793
|
*/
|
|
3879
|
-
|
|
4794
|
+
canonical?: string;
|
|
3880
4795
|
/**
|
|
3881
|
-
*
|
|
4796
|
+
* Platform aliases (multi-language names for lookup)
|
|
3882
4797
|
*/
|
|
3883
|
-
|
|
4798
|
+
aliases?: Array<string>;
|
|
3884
4799
|
/**
|
|
3885
|
-
*
|
|
4800
|
+
* Platform URL
|
|
3886
4801
|
*/
|
|
3887
|
-
|
|
4802
|
+
url?: string;
|
|
3888
4803
|
/**
|
|
3889
|
-
*
|
|
4804
|
+
* Platform type
|
|
3890
4805
|
*/
|
|
3891
|
-
|
|
3892
|
-
|
|
3893
|
-
|
|
3894
|
-
|
|
3895
|
-
|
|
3896
|
-
|
|
3897
|
-
|
|
3898
|
-
|
|
3899
|
-
/**
|
|
3900
|
-
* Action taken or requested
|
|
3901
|
-
*/
|
|
3902
|
-
export type action2 =
|
|
3903
|
-
| 'created'
|
|
3904
|
-
| 'ask'
|
|
3905
|
-
| 'confirm'
|
|
3906
|
-
| 'confirm_duplicate'
|
|
3907
|
-
| 'confirm_rule'
|
|
3908
|
-
| 'confirm_account'
|
|
3909
|
-
| 'confirm_payee'
|
|
3910
|
-
| 'cancel';
|
|
3911
|
-
|
|
3912
|
-
/**
|
|
3913
|
-
* Transaction intent detected by EntityRouter (v6.0: 5 core intents). Frontend uses this to render scenario-specific form fields.
|
|
3914
|
-
*/
|
|
3915
|
-
export type intent = 'expense' | 'asset' | 'income' | 'liability' | 'equity';
|
|
3916
|
-
|
|
3917
|
-
/**
|
|
3918
|
-
* Asset sub-type (only present when intent is "asset"). Determines which asset-related form to render.
|
|
3919
|
-
*/
|
|
3920
|
-
export type assetSubType = 'transfer' | 'banking' | 'investment';
|
|
3921
|
-
|
|
3922
|
-
/**
|
|
3923
|
-
* Liability sub-type (only present when intent is "liability"). borrow: borrowing money (Liabilities → Assets), repay: repaying debt (Assets → Liabilities).
|
|
3924
|
-
*/
|
|
3925
|
-
export type liabilitySubType = 'borrow' | 'repay';
|
|
3926
|
-
|
|
3927
|
-
/**
|
|
3928
|
-
* Equity sub-type (only present when intent is "equity"). opening: account opening balance (Equity → Assets), adjustment: balance correction.
|
|
3929
|
-
*/
|
|
3930
|
-
export type equitySubType = 'opening' | 'adjustment';
|
|
3931
|
-
|
|
3932
|
-
export type BalanceByCurrencyDto = {
|
|
4806
|
+
type?:
|
|
4807
|
+
| 'BANK'
|
|
4808
|
+
| 'BROKERAGE'
|
|
4809
|
+
| 'CRYPTO_EXCHANGE'
|
|
4810
|
+
| 'PAYMENT'
|
|
4811
|
+
| 'INVESTMENT'
|
|
4812
|
+
| 'INSURANCE'
|
|
4813
|
+
| 'OTHER';
|
|
3933
4814
|
/**
|
|
3934
|
-
*
|
|
4815
|
+
* Platform logo URL
|
|
3935
4816
|
*/
|
|
3936
|
-
|
|
4817
|
+
logoUrl?: string;
|
|
3937
4818
|
/**
|
|
3938
|
-
*
|
|
4819
|
+
* Whether the platform is active
|
|
3939
4820
|
*/
|
|
3940
|
-
|
|
4821
|
+
isActive?: boolean;
|
|
3941
4822
|
};
|
|
3942
4823
|
|
|
3943
4824
|
export type NetWorthByCurrencyDto = {
|
|
@@ -3980,21 +4861,6 @@ export type ConvertedNetWorthDto = {
|
|
|
3980
4861
|
};
|
|
3981
4862
|
};
|
|
3982
4863
|
|
|
3983
|
-
export type ExchangeRateWarningDto = {
|
|
3984
|
-
/**
|
|
3985
|
-
* Warning type
|
|
3986
|
-
*/
|
|
3987
|
-
type: string;
|
|
3988
|
-
/**
|
|
3989
|
-
* Currency without exchange rate
|
|
3990
|
-
*/
|
|
3991
|
-
currency: string;
|
|
3992
|
-
/**
|
|
3993
|
-
* Total amount affected
|
|
3994
|
-
*/
|
|
3995
|
-
totalAmount: string;
|
|
3996
|
-
};
|
|
3997
|
-
|
|
3998
4864
|
export type NetWorthResponseDto = {
|
|
3999
4865
|
/**
|
|
4000
4866
|
* Total net worth (assets - liabilities, converted to base currency)
|
|
@@ -4059,6 +4925,10 @@ export type AccountItemDto = {
|
|
|
4059
4925
|
* Currency code
|
|
4060
4926
|
*/
|
|
4061
4927
|
currency: string;
|
|
4928
|
+
/**
|
|
4929
|
+
* FX-converted balance in base currency; omitted when not convertible
|
|
4930
|
+
*/
|
|
4931
|
+
convertedBalance?: string;
|
|
4062
4932
|
};
|
|
4063
4933
|
|
|
4064
4934
|
export type PlatformGroupDto = {
|
|
@@ -4075,9 +4945,40 @@ export type PlatformGroupDto = {
|
|
|
4075
4945
|
*/
|
|
4076
4946
|
accounts: Array<AccountItemDto>;
|
|
4077
4947
|
/**
|
|
4078
|
-
*
|
|
4948
|
+
* FX-converted total balance in base currency
|
|
4079
4949
|
*/
|
|
4080
4950
|
totalBalance: string;
|
|
4951
|
+
/**
|
|
4952
|
+
* Raw (unconverted) balances grouped by currency
|
|
4953
|
+
*/
|
|
4954
|
+
balanceByCurrency: Array<BalanceByCurrencyDto>;
|
|
4955
|
+
/**
|
|
4956
|
+
* Converted balance in base currency (omitted when no currency is convertible)
|
|
4957
|
+
*/
|
|
4958
|
+
convertedBalance?: string;
|
|
4959
|
+
/**
|
|
4960
|
+
* Share of the grand converted total (0-100); 0 when grand total is 0
|
|
4961
|
+
*/
|
|
4962
|
+
sharePct: number;
|
|
4963
|
+
};
|
|
4964
|
+
|
|
4965
|
+
export type AccountExchangeRateWarningDto = {
|
|
4966
|
+
/**
|
|
4967
|
+
* Warning type
|
|
4968
|
+
*/
|
|
4969
|
+
type: string;
|
|
4970
|
+
/**
|
|
4971
|
+
* Currency without exchange rate
|
|
4972
|
+
*/
|
|
4973
|
+
currency: string;
|
|
4974
|
+
/**
|
|
4975
|
+
* Affected account paths
|
|
4976
|
+
*/
|
|
4977
|
+
accounts: Array<string>;
|
|
4978
|
+
/**
|
|
4979
|
+
* Total amount in this currency
|
|
4980
|
+
*/
|
|
4981
|
+
totalAmount: string;
|
|
4081
4982
|
};
|
|
4082
4983
|
|
|
4083
4984
|
export type AccountsSummaryDto = {
|
|
@@ -4089,6 +4990,14 @@ export type AccountsSummaryDto = {
|
|
|
4089
4990
|
* Total number of platforms
|
|
4090
4991
|
*/
|
|
4091
4992
|
totalPlatforms: number;
|
|
4993
|
+
/**
|
|
4994
|
+
* Base currency for conversion
|
|
4995
|
+
*/
|
|
4996
|
+
baseCurrency: string;
|
|
4997
|
+
/**
|
|
4998
|
+
* Per-account exchange rate warnings
|
|
4999
|
+
*/
|
|
5000
|
+
warnings?: Array<AccountExchangeRateWarningDto>;
|
|
4092
5001
|
};
|
|
4093
5002
|
|
|
4094
5003
|
export type AccountsResponseDto = {
|
|
@@ -4123,6 +5032,10 @@ export type AccountItemWithAssetClassDto = {
|
|
|
4123
5032
|
* Currency code
|
|
4124
5033
|
*/
|
|
4125
5034
|
currency: string;
|
|
5035
|
+
/**
|
|
5036
|
+
* FX-converted balance in base currency; omitted when not convertible
|
|
5037
|
+
*/
|
|
5038
|
+
convertedBalance?: string;
|
|
4126
5039
|
/**
|
|
4127
5040
|
* Asset class
|
|
4128
5041
|
*/
|
|
@@ -4139,8 +5052,21 @@ export type AccountItemWithAssetClassDto = {
|
|
|
4139
5052
|
* Risk level
|
|
4140
5053
|
*/
|
|
4141
5054
|
riskLevel?: string;
|
|
5055
|
+
/**
|
|
5056
|
+
* ADR-0105 classification provenance (holding level always; account level only on FALLBACK)
|
|
5057
|
+
*/
|
|
5058
|
+
source?: 'USER_META' | 'FIAT_CURRENCY' | 'OPENBB_MAPPING' | 'FALLBACK';
|
|
4142
5059
|
};
|
|
4143
5060
|
|
|
5061
|
+
/**
|
|
5062
|
+
* ADR-0105 classification provenance (holding level always; account level only on FALLBACK)
|
|
5063
|
+
*/
|
|
5064
|
+
export type source2 =
|
|
5065
|
+
| 'USER_META'
|
|
5066
|
+
| 'FIAT_CURRENCY'
|
|
5067
|
+
| 'OPENBB_MAPPING'
|
|
5068
|
+
| 'FALLBACK';
|
|
5069
|
+
|
|
4144
5070
|
export type AssetClassGroupDto = {
|
|
4145
5071
|
/**
|
|
4146
5072
|
* Asset class name
|
|
@@ -4191,25 +5117,6 @@ export type assetClass =
|
|
|
4191
5117
|
| 'REAL_ESTATE'
|
|
4192
5118
|
| 'INDEX';
|
|
4193
5119
|
|
|
4194
|
-
export type AccountExchangeRateWarningDto = {
|
|
4195
|
-
/**
|
|
4196
|
-
* Warning type
|
|
4197
|
-
*/
|
|
4198
|
-
type: string;
|
|
4199
|
-
/**
|
|
4200
|
-
* Currency without exchange rate
|
|
4201
|
-
*/
|
|
4202
|
-
currency: string;
|
|
4203
|
-
/**
|
|
4204
|
-
* Affected account paths
|
|
4205
|
-
*/
|
|
4206
|
-
accounts: Array<string>;
|
|
4207
|
-
/**
|
|
4208
|
-
* Total amount in this currency
|
|
4209
|
-
*/
|
|
4210
|
-
totalAmount: string;
|
|
4211
|
-
};
|
|
4212
|
-
|
|
4213
5120
|
export type AssetClassSummaryDto = {
|
|
4214
5121
|
/**
|
|
4215
5122
|
* Total number of accounts
|
|
@@ -4227,6 +5134,12 @@ export type AssetClassSummaryDto = {
|
|
|
4227
5134
|
* Exchange rate warnings
|
|
4228
5135
|
*/
|
|
4229
5136
|
warnings?: Array<AccountExchangeRateWarningDto>;
|
|
5137
|
+
/**
|
|
5138
|
+
* ADR-0105 §4 fallback provenance stats (holding level only). valueRatio is the grey-area share of total converted value; count is the number of source=FALLBACK holdings.
|
|
5139
|
+
*/
|
|
5140
|
+
fallback?: {
|
|
5141
|
+
[key: string]: unknown;
|
|
5142
|
+
};
|
|
4230
5143
|
};
|
|
4231
5144
|
|
|
4232
5145
|
export type AssetClassAccountsResponseDto = {
|
|
@@ -4238,6 +5151,56 @@ export type AssetClassAccountsResponseDto = {
|
|
|
4238
5151
|
* Summary statistics
|
|
4239
5152
|
*/
|
|
4240
5153
|
summary: AssetClassSummaryDto;
|
|
5154
|
+
/**
|
|
5155
|
+
* ADR-0105 §6 holding-level grey-area bucket (source=FALLBACK holdings peeled out of groups). Present only for groupBy=holdingAssetClass when FALLBACK holdings exist.
|
|
5156
|
+
*/
|
|
5157
|
+
uncategorized?: AssetClassGroupDto;
|
|
5158
|
+
};
|
|
5159
|
+
|
|
5160
|
+
export type HoldingAssetClassAccountSliceDto = {
|
|
5161
|
+
/**
|
|
5162
|
+
* Account ID
|
|
5163
|
+
*/
|
|
5164
|
+
accountId: string;
|
|
5165
|
+
/**
|
|
5166
|
+
* Full account path
|
|
5167
|
+
*/
|
|
5168
|
+
accountPath: string;
|
|
5169
|
+
/**
|
|
5170
|
+
* Currency of the holding with the largest converted base value; undefined when no holding is convertible
|
|
5171
|
+
*/
|
|
5172
|
+
accountCurrency?: string;
|
|
5173
|
+
/**
|
|
5174
|
+
* Account's market value in base currency (Σ converted holdings; grey bucket included)
|
|
5175
|
+
*/
|
|
5176
|
+
marketValueBase: string;
|
|
5177
|
+
/**
|
|
5178
|
+
* Share of the global total (0-100). 0 when globalTotal is zero (no NaN/Infinity).
|
|
5179
|
+
*/
|
|
5180
|
+
shareOfTotalPct: number;
|
|
5181
|
+
/**
|
|
5182
|
+
* Per-account asset-class breakdown
|
|
5183
|
+
*/
|
|
5184
|
+
groups: Array<AssetClassGroupDto>;
|
|
5185
|
+
/**
|
|
5186
|
+
* Per-account grey bucket (source=FALLBACK holdings, incl. broker cash)
|
|
5187
|
+
*/
|
|
5188
|
+
uncategorized?: AssetClassGroupDto;
|
|
5189
|
+
/**
|
|
5190
|
+
* Every holding row for this account (account ID in each row’s `id` field)
|
|
5191
|
+
*/
|
|
5192
|
+
holdings: Array<AccountItemWithAssetClassDto>;
|
|
5193
|
+
};
|
|
5194
|
+
|
|
5195
|
+
export type HoldingAssetClassCrossAccountResponseDto = {
|
|
5196
|
+
/**
|
|
5197
|
+
* Merged cross-account holding aggregation
|
|
5198
|
+
*/
|
|
5199
|
+
global: AssetClassAccountsResponseDto;
|
|
5200
|
+
/**
|
|
5201
|
+
* Per-account slices
|
|
5202
|
+
*/
|
|
5203
|
+
byAccount: Array<HoldingAssetClassAccountSliceDto>;
|
|
4241
5204
|
};
|
|
4242
5205
|
|
|
4243
5206
|
export type CashFlowByCurrencyDto = {
|
|
@@ -4271,154 +5234,305 @@ export type ConvertedCashFlowDto = {
|
|
|
4271
5234
|
/**
|
|
4272
5235
|
* Converted net savings
|
|
4273
5236
|
*/
|
|
4274
|
-
netSavings: string;
|
|
5237
|
+
netSavings: string;
|
|
5238
|
+
/**
|
|
5239
|
+
* Exchange rates used for conversion
|
|
5240
|
+
*/
|
|
5241
|
+
exchangeRates: {
|
|
5242
|
+
[key: string]: unknown;
|
|
5243
|
+
};
|
|
5244
|
+
};
|
|
5245
|
+
|
|
5246
|
+
export type CashFlowResponseDto = {
|
|
5247
|
+
/**
|
|
5248
|
+
* Period identifier (YYYY-MM)
|
|
5249
|
+
*/
|
|
5250
|
+
period: string;
|
|
5251
|
+
/**
|
|
5252
|
+
* Total income for the period (converted)
|
|
5253
|
+
*/
|
|
5254
|
+
income: string;
|
|
5255
|
+
/**
|
|
5256
|
+
* Total expenses for the period (converted)
|
|
5257
|
+
*/
|
|
5258
|
+
expense: string;
|
|
5259
|
+
/**
|
|
5260
|
+
* Net savings (income - expense, converted)
|
|
5261
|
+
*/
|
|
5262
|
+
netSavings: string;
|
|
5263
|
+
/**
|
|
5264
|
+
* Savings rate percentage (netSavings / income * 100)
|
|
5265
|
+
*/
|
|
5266
|
+
savingsRate: string;
|
|
5267
|
+
/**
|
|
5268
|
+
* Base currency code
|
|
5269
|
+
*/
|
|
5270
|
+
currency: string;
|
|
5271
|
+
/**
|
|
5272
|
+
* Cash flow grouped by original currency
|
|
5273
|
+
*/
|
|
5274
|
+
byCurrency?: CashFlowByCurrencyDto;
|
|
5275
|
+
/**
|
|
5276
|
+
* Converted values in base currency
|
|
5277
|
+
*/
|
|
5278
|
+
converted?: ConvertedCashFlowDto;
|
|
5279
|
+
/**
|
|
5280
|
+
* Exchange rate warnings
|
|
5281
|
+
*/
|
|
5282
|
+
warnings?: Array<ExchangeRateWarningDto>;
|
|
5283
|
+
};
|
|
5284
|
+
|
|
5285
|
+
export type CategoryGroupDto = {
|
|
5286
|
+
/**
|
|
5287
|
+
* Functional category (account-path Group segment); regional and universal account paths merge under it
|
|
5288
|
+
*/
|
|
5289
|
+
category: string;
|
|
5290
|
+
/**
|
|
5291
|
+
* Converted total for this category in base currency (expense amount when flow=expense, income amount when flow=income)
|
|
5292
|
+
*/
|
|
5293
|
+
totalExpense: string;
|
|
5294
|
+
/**
|
|
5295
|
+
* Share of grand total (0-100); 0 when grand total is 0
|
|
5296
|
+
*/
|
|
5297
|
+
sharePct: number;
|
|
5298
|
+
/**
|
|
5299
|
+
* Raw (unconverted) expense per currency
|
|
5300
|
+
*/
|
|
5301
|
+
balanceByCurrency: Array<BalanceByCurrencyDto>;
|
|
5302
|
+
/**
|
|
5303
|
+
* Converted total in base currency (omitted when FX missing for all currencies in this category)
|
|
5304
|
+
*/
|
|
5305
|
+
convertedBalance?: string;
|
|
5306
|
+
};
|
|
5307
|
+
|
|
5308
|
+
export type ExpensesByCategorySummaryDto = {
|
|
5309
|
+
/**
|
|
5310
|
+
* Total across all categories, converted (convertible categories only); expense totals when flow=expense, income totals when flow=income
|
|
5311
|
+
*/
|
|
5312
|
+
totalExpense: string;
|
|
4275
5313
|
/**
|
|
4276
|
-
*
|
|
5314
|
+
* Number of categories
|
|
4277
5315
|
*/
|
|
4278
|
-
|
|
4279
|
-
[key: string]: unknown;
|
|
4280
|
-
};
|
|
5316
|
+
categoryCount: number;
|
|
4281
5317
|
};
|
|
4282
5318
|
|
|
4283
|
-
export type
|
|
5319
|
+
export type ExpensesByCategoryResponseDto = {
|
|
4284
5320
|
/**
|
|
4285
|
-
* Period
|
|
5321
|
+
* Period requested
|
|
4286
5322
|
*/
|
|
4287
5323
|
period: string;
|
|
4288
5324
|
/**
|
|
4289
|
-
*
|
|
5325
|
+
* Base currency for converted values
|
|
4290
5326
|
*/
|
|
4291
|
-
|
|
5327
|
+
baseCurrency: string;
|
|
4292
5328
|
/**
|
|
4293
|
-
*
|
|
5329
|
+
* Expense groups by functional category, sorted by converted total desc
|
|
4294
5330
|
*/
|
|
4295
|
-
|
|
5331
|
+
groups: Array<CategoryGroupDto>;
|
|
4296
5332
|
/**
|
|
4297
|
-
*
|
|
5333
|
+
* Summary statistics
|
|
4298
5334
|
*/
|
|
4299
|
-
|
|
5335
|
+
summary: ExpensesByCategorySummaryDto;
|
|
4300
5336
|
/**
|
|
4301
|
-
*
|
|
5337
|
+
* Exchange rate warnings (e.g. missing rate for a currency)
|
|
4302
5338
|
*/
|
|
4303
|
-
|
|
5339
|
+
warnings?: Array<ExchangeRateWarningDto>;
|
|
5340
|
+
};
|
|
5341
|
+
|
|
5342
|
+
export type MonetaryDto = {
|
|
4304
5343
|
/**
|
|
4305
|
-
*
|
|
5344
|
+
* Amount (Decimal string)
|
|
5345
|
+
*/
|
|
5346
|
+
amount: string;
|
|
5347
|
+
/**
|
|
5348
|
+
* ISO 4217 currency
|
|
4306
5349
|
*/
|
|
4307
5350
|
currency: string;
|
|
4308
5351
|
/**
|
|
4309
|
-
*
|
|
5352
|
+
* Converted to user base currency (Decimal string)
|
|
4310
5353
|
*/
|
|
4311
|
-
|
|
5354
|
+
baseCcyEquivalent?: {
|
|
5355
|
+
[key: string]: unknown;
|
|
5356
|
+
} | null;
|
|
5357
|
+
};
|
|
5358
|
+
|
|
5359
|
+
export type CurrentPriceDto = {
|
|
4312
5360
|
/**
|
|
4313
|
-
*
|
|
5361
|
+
* Price amount (Decimal string)
|
|
4314
5362
|
*/
|
|
4315
|
-
|
|
5363
|
+
amount: string;
|
|
4316
5364
|
/**
|
|
4317
|
-
*
|
|
5365
|
+
* Price currency (ISO 4217)
|
|
4318
5366
|
*/
|
|
4319
|
-
|
|
5367
|
+
currency: string;
|
|
5368
|
+
/**
|
|
5369
|
+
* Price date (ISO 8601)
|
|
5370
|
+
*/
|
|
5371
|
+
date: string;
|
|
5372
|
+
/**
|
|
5373
|
+
* Price source
|
|
5374
|
+
*/
|
|
5375
|
+
source: 'USER_OVERRIDE' | 'OPENBB_EQUITY' | 'OPENBB_CURRENCY';
|
|
4320
5376
|
};
|
|
4321
5377
|
|
|
4322
|
-
|
|
5378
|
+
/**
|
|
5379
|
+
* Price source
|
|
5380
|
+
*/
|
|
5381
|
+
export type source3 = 'USER_OVERRIDE' | 'OPENBB_EQUITY' | 'OPENBB_CURRENCY';
|
|
5382
|
+
|
|
5383
|
+
export type FxRateDto = {
|
|
5384
|
+
from: string;
|
|
5385
|
+
to: string;
|
|
4323
5386
|
/**
|
|
4324
|
-
*
|
|
5387
|
+
* FX rate (Decimal string)
|
|
4325
5388
|
*/
|
|
4326
|
-
|
|
5389
|
+
rate: string;
|
|
4327
5390
|
/**
|
|
4328
|
-
*
|
|
5391
|
+
* Rate date (ISO 8601)
|
|
4329
5392
|
*/
|
|
4330
|
-
|
|
5393
|
+
date: string;
|
|
4331
5394
|
};
|
|
4332
5395
|
|
|
4333
|
-
export type
|
|
5396
|
+
export type HoldingPnlRowDto = {
|
|
4334
5397
|
/**
|
|
4335
|
-
*
|
|
5398
|
+
* Account UUID
|
|
4336
5399
|
*/
|
|
4337
|
-
|
|
5400
|
+
accountId: string;
|
|
4338
5401
|
/**
|
|
4339
|
-
*
|
|
5402
|
+
* Full account path
|
|
4340
5403
|
*/
|
|
4341
|
-
|
|
5404
|
+
accountPath: string;
|
|
4342
5405
|
/**
|
|
4343
|
-
*
|
|
5406
|
+
* Account settlement currency (ISO 4217), from cost currency
|
|
4344
5407
|
*/
|
|
4345
|
-
|
|
5408
|
+
accountCcy?: {
|
|
4346
5409
|
[key: string]: unknown;
|
|
4347
|
-
};
|
|
5410
|
+
} | null;
|
|
4348
5411
|
/**
|
|
4349
|
-
*
|
|
5412
|
+
* Broker type derived from Platform.type
|
|
4350
5413
|
*/
|
|
4351
|
-
|
|
4352
|
-
|
|
4353
|
-
|
|
4354
|
-
export type TrendSummaryDto = {
|
|
5414
|
+
brokerType?: {
|
|
5415
|
+
[key: string]: unknown;
|
|
5416
|
+
} | null;
|
|
4355
5417
|
/**
|
|
4356
|
-
*
|
|
5418
|
+
* Commodity symbol
|
|
4357
5419
|
*/
|
|
4358
|
-
|
|
5420
|
+
symbol: string;
|
|
4359
5421
|
/**
|
|
4360
|
-
*
|
|
5422
|
+
* Chart segment token (libs/common resolver)
|
|
4361
5423
|
*/
|
|
4362
|
-
|
|
5424
|
+
chartToken: 'equity' | 'fund' | 'bond' | 'cash' | 'other';
|
|
5425
|
+
assetClass: string;
|
|
5426
|
+
assetSubClass?: {
|
|
5427
|
+
[key: string]: unknown;
|
|
5428
|
+
} | null;
|
|
4363
5429
|
/**
|
|
4364
|
-
*
|
|
5430
|
+
* Net held units (Decimal string)
|
|
4365
5431
|
*/
|
|
4366
|
-
|
|
5432
|
+
units: string;
|
|
4367
5433
|
/**
|
|
4368
|
-
*
|
|
5434
|
+
* Average cost per unit; null when cost currency conflicts or no cost
|
|
4369
5435
|
*/
|
|
4370
|
-
|
|
4371
|
-
};
|
|
4372
|
-
|
|
4373
|
-
export type MultiCurrencyPointDto = {
|
|
5436
|
+
averageCostPerUnit?: MonetaryDto | null;
|
|
4374
5437
|
/**
|
|
4375
|
-
*
|
|
5438
|
+
* Cost basis of held units
|
|
4376
5439
|
*/
|
|
4377
|
-
|
|
5440
|
+
costBasis?: MonetaryDto | null;
|
|
4378
5441
|
/**
|
|
4379
|
-
*
|
|
5442
|
+
* Market value at asOf price
|
|
4380
5443
|
*/
|
|
4381
|
-
|
|
4382
|
-
};
|
|
4383
|
-
|
|
4384
|
-
export type PortfolioTrendsResponseDto = {
|
|
5444
|
+
marketValue?: MonetaryDto | null;
|
|
4385
5445
|
/**
|
|
4386
|
-
*
|
|
5446
|
+
* Price used for market value
|
|
4387
5447
|
*/
|
|
4388
|
-
|
|
5448
|
+
currentPrice?: CurrentPriceDto | null;
|
|
4389
5449
|
/**
|
|
4390
|
-
*
|
|
5450
|
+
* Unrealized P&L in base currency (Decimal string); null when any FX/price missing
|
|
4391
5451
|
*/
|
|
4392
|
-
|
|
5452
|
+
unrealizedPnlBase?: {
|
|
5453
|
+
[key: string]: unknown;
|
|
5454
|
+
} | null;
|
|
4393
5455
|
/**
|
|
4394
|
-
*
|
|
5456
|
+
* Unrealized P&L % (Decimal string)
|
|
4395
5457
|
*/
|
|
4396
|
-
|
|
5458
|
+
unrealizedPnlPct?: {
|
|
5459
|
+
[key: string]: unknown;
|
|
5460
|
+
} | null;
|
|
4397
5461
|
/**
|
|
4398
|
-
*
|
|
5462
|
+
* Historical FX rate applied to cost basis
|
|
4399
5463
|
*/
|
|
4400
|
-
|
|
5464
|
+
costFxRate?: FxRateDto | null;
|
|
4401
5465
|
/**
|
|
4402
|
-
*
|
|
5466
|
+
* FX rate applied to market value
|
|
4403
5467
|
*/
|
|
4404
|
-
|
|
5468
|
+
marketFxRate?: FxRateDto | null;
|
|
4405
5469
|
/**
|
|
4406
|
-
*
|
|
5470
|
+
* Share of invested assets % (Decimal string); only for invested chartTokens
|
|
4407
5471
|
*/
|
|
4408
|
-
|
|
5472
|
+
pctOfInvestedAssets?: {
|
|
5473
|
+
[key: string]: unknown;
|
|
5474
|
+
} | null;
|
|
4409
5475
|
/**
|
|
4410
|
-
*
|
|
5476
|
+
* Cumulative realized P&L on sold lots (asOf-date cutoff); null when the method has no applicable sells, a sell lacks a price, or any required FX rate is missing (never-mix). When a sell spans multiple currencies (cross-currency sale), amount and currency reflect the base currency; baseCcyEquivalent is always the authoritative dual-FX figure
|
|
4411
5477
|
*/
|
|
4412
|
-
|
|
5478
|
+
realizedPnl?: MonetaryDto | null;
|
|
4413
5479
|
};
|
|
4414
5480
|
|
|
4415
|
-
|
|
5481
|
+
/**
|
|
5482
|
+
* Chart segment token (libs/common resolver)
|
|
5483
|
+
*/
|
|
5484
|
+
export type chartToken = 'equity' | 'fund' | 'bond' | 'cash' | 'other';
|
|
4416
5485
|
|
|
4417
|
-
export type
|
|
5486
|
+
export type HoldingPnlWarningDto = {
|
|
5487
|
+
/**
|
|
5488
|
+
* Warning type
|
|
5489
|
+
*/
|
|
5490
|
+
type:
|
|
5491
|
+
| 'MISSING_COST_FX_RATE'
|
|
5492
|
+
| 'MISSING_MARKET_FX_RATE'
|
|
5493
|
+
| 'MISSING_SALE_PRICE'
|
|
5494
|
+
| 'MISSING_REALIZED_FX_RATE'
|
|
5495
|
+
| 'OVERSOLD_LOTS'
|
|
5496
|
+
| 'NO_PRICE'
|
|
5497
|
+
| 'MIXED_COST_CURRENCY';
|
|
5498
|
+
symbol?: {
|
|
5499
|
+
[key: string]: unknown;
|
|
5500
|
+
} | null;
|
|
5501
|
+
accountId?: {
|
|
5502
|
+
[key: string]: unknown;
|
|
5503
|
+
} | null;
|
|
5504
|
+
currency?: {
|
|
5505
|
+
[key: string]: unknown;
|
|
5506
|
+
} | null;
|
|
5507
|
+
};
|
|
4418
5508
|
|
|
4419
|
-
|
|
5509
|
+
/**
|
|
5510
|
+
* Warning type
|
|
5511
|
+
*/
|
|
5512
|
+
export type type4 =
|
|
5513
|
+
| 'MISSING_COST_FX_RATE'
|
|
5514
|
+
| 'MISSING_MARKET_FX_RATE'
|
|
5515
|
+
| 'MISSING_SALE_PRICE'
|
|
5516
|
+
| 'MISSING_REALIZED_FX_RATE'
|
|
5517
|
+
| 'OVERSOLD_LOTS'
|
|
5518
|
+
| 'NO_PRICE'
|
|
5519
|
+
| 'MIXED_COST_CURRENCY';
|
|
5520
|
+
|
|
5521
|
+
export type HoldingPnlResponseDto = {
|
|
5522
|
+
asOfDate: string;
|
|
5523
|
+
baseCurrency: string;
|
|
5524
|
+
/**
|
|
5525
|
+
* Realized-P&L lot-matching method (FIFO or average). Unrealized cost basis remains average regardless of this value (#473).
|
|
5526
|
+
*/
|
|
5527
|
+
method: 'average' | 'FIFO';
|
|
5528
|
+
rows: Array<HoldingPnlRowDto>;
|
|
5529
|
+
warnings: Array<HoldingPnlWarningDto>;
|
|
5530
|
+
};
|
|
4420
5531
|
|
|
4421
|
-
|
|
5532
|
+
/**
|
|
5533
|
+
* Realized-P&L lot-matching method (FIFO or average). Unrealized cost basis remains average regardless of this value (#473).
|
|
5534
|
+
*/
|
|
5535
|
+
export type method = 'average' | 'FIFO';
|
|
4422
5536
|
|
|
4423
5537
|
export type AnonymousLoginDto = {
|
|
4424
5538
|
/**
|
|
@@ -4427,6 +5541,13 @@ export type AnonymousLoginDto = {
|
|
|
4427
5541
|
accessToken: string;
|
|
4428
5542
|
};
|
|
4429
5543
|
|
|
5544
|
+
export type AnonymousLoginResponseDto = {
|
|
5545
|
+
/**
|
|
5546
|
+
* JWT auth token
|
|
5547
|
+
*/
|
|
5548
|
+
authToken: string;
|
|
5549
|
+
};
|
|
5550
|
+
|
|
4430
5551
|
export type AccountControllerCreateData = {
|
|
4431
5552
|
/**
|
|
4432
5553
|
* Region code for tenant context
|
|
@@ -4455,7 +5576,7 @@ export type AccountControllerFindAllData = {
|
|
|
4455
5576
|
*/
|
|
4456
5577
|
region: 'cn' | 'us' | 'de' | 'gb';
|
|
4457
5578
|
/**
|
|
4458
|
-
* Search term for path
|
|
5579
|
+
* Search term for account path
|
|
4459
5580
|
*/
|
|
4460
5581
|
search?: string;
|
|
4461
5582
|
/**
|
|
@@ -4538,6 +5659,21 @@ export type AccountControllerReopenData = {
|
|
|
4538
5659
|
|
|
4539
5660
|
export type AccountControllerReopenResponse = AccountResponseDto;
|
|
4540
5661
|
|
|
5662
|
+
export type AccountControllerAddOpeningBalanceData = {
|
|
5663
|
+
/**
|
|
5664
|
+
* Account UUID
|
|
5665
|
+
*/
|
|
5666
|
+
id: string;
|
|
5667
|
+
/**
|
|
5668
|
+
* Region code for tenant context
|
|
5669
|
+
*/
|
|
5670
|
+
region: 'cn' | 'us' | 'de' | 'gb';
|
|
5671
|
+
requestBody: CreateOpeningBalanceDto;
|
|
5672
|
+
};
|
|
5673
|
+
|
|
5674
|
+
export type AccountControllerAddOpeningBalanceResponse =
|
|
5675
|
+
OpeningBalanceResultDto;
|
|
5676
|
+
|
|
4541
5677
|
export type AccountStandardsControllerGetTemplatesData = {
|
|
4542
5678
|
/**
|
|
4543
5679
|
* Region code (cn, us, de)
|
|
@@ -4598,6 +5734,10 @@ export type TransactionControllerListData = {
|
|
|
4598
5734
|
* Filter by account ID (transactions with postings to this account)
|
|
4599
5735
|
*/
|
|
4600
5736
|
accountId?: string;
|
|
5737
|
+
/**
|
|
5738
|
+
* Filter by ADR-0075 functional category (Group segment); matches any posting to an Expenses/Income account whose derived Group segment equals this value
|
|
5739
|
+
*/
|
|
5740
|
+
category?: string;
|
|
4601
5741
|
/**
|
|
4602
5742
|
* Filter by start date (inclusive), format: YYYY-MM-DD
|
|
4603
5743
|
*/
|
|
@@ -4641,6 +5781,20 @@ export type TransactionControllerCreateBatchData = {
|
|
|
4641
5781
|
export type TransactionControllerCreateBatchResponse =
|
|
4642
5782
|
BatchTransactionResponseDto;
|
|
4643
5783
|
|
|
5784
|
+
export type TransactionControllerCorrectData = {
|
|
5785
|
+
/**
|
|
5786
|
+
* Original transaction ID to correct
|
|
5787
|
+
*/
|
|
5788
|
+
id: string;
|
|
5789
|
+
/**
|
|
5790
|
+
* Region code for tenant context
|
|
5791
|
+
*/
|
|
5792
|
+
region: 'cn' | 'us' | 'de' | 'gb';
|
|
5793
|
+
requestBody: CorrectTransactionDto;
|
|
5794
|
+
};
|
|
5795
|
+
|
|
5796
|
+
export type TransactionControllerCorrectResponse = TransactionDetailDto;
|
|
5797
|
+
|
|
4644
5798
|
export type TransactionControllerSuggestTagsData = {
|
|
4645
5799
|
/**
|
|
4646
5800
|
* Max suggestions (1-100, default 10)
|
|
@@ -4708,7 +5862,7 @@ export type TransactionControllerDeleteResponse = void;
|
|
|
4708
5862
|
|
|
4709
5863
|
export type BalanceControllerGetBalanceData = {
|
|
4710
5864
|
/**
|
|
4711
|
-
* Account name (e.g., "Assets:
|
|
5865
|
+
* Account name (e.g., "Assets:Checking")
|
|
4712
5866
|
*/
|
|
4713
5867
|
account: string;
|
|
4714
5868
|
/**
|
|
@@ -5023,92 +6177,189 @@ export type PayeeProfileAdminControllerUnverifyResponse =
|
|
|
5023
6177
|
|
|
5024
6178
|
export type CommodityControllerCreateData = {
|
|
5025
6179
|
/**
|
|
5026
|
-
* Region code for tenant context
|
|
6180
|
+
* Region code for tenant context
|
|
6181
|
+
*/
|
|
6182
|
+
region: 'cn' | 'us' | 'de' | 'gb';
|
|
6183
|
+
requestBody: CreateCommodityDto;
|
|
6184
|
+
};
|
|
6185
|
+
|
|
6186
|
+
export type CommodityControllerCreateResponse = CommodityResponseDto;
|
|
6187
|
+
|
|
6188
|
+
export type CommodityControllerFindAllData = {
|
|
6189
|
+
/**
|
|
6190
|
+
* Region code for tenant context
|
|
6191
|
+
*/
|
|
6192
|
+
region: 'cn' | 'us' | 'de' | 'gb';
|
|
6193
|
+
/**
|
|
6194
|
+
* Search term for symbol or metadata fields (partial match). Searches symbol and metadata.name.
|
|
6195
|
+
*/
|
|
6196
|
+
search?: string;
|
|
6197
|
+
/**
|
|
6198
|
+
* Filter by exact symbol match
|
|
6199
|
+
*/
|
|
6200
|
+
symbol?: string;
|
|
6201
|
+
};
|
|
6202
|
+
|
|
6203
|
+
export type CommodityControllerFindAllResponse = CommodityListResponseDto;
|
|
6204
|
+
|
|
6205
|
+
export type CommodityControllerFindOneData = {
|
|
6206
|
+
/**
|
|
6207
|
+
* Region code for tenant context
|
|
6208
|
+
*/
|
|
6209
|
+
region: 'cn' | 'us' | 'de' | 'gb';
|
|
6210
|
+
/**
|
|
6211
|
+
* Commodity symbol
|
|
6212
|
+
*/
|
|
6213
|
+
symbol: string;
|
|
6214
|
+
};
|
|
6215
|
+
|
|
6216
|
+
export type CommodityControllerFindOneResponse = CommodityResponseDto;
|
|
6217
|
+
|
|
6218
|
+
export type CommodityControllerUpdateData = {
|
|
6219
|
+
/**
|
|
6220
|
+
* Region code for tenant context
|
|
6221
|
+
*/
|
|
6222
|
+
region: 'cn' | 'us' | 'de' | 'gb';
|
|
6223
|
+
requestBody: UpdateCommodityDto;
|
|
6224
|
+
/**
|
|
6225
|
+
* Commodity symbol
|
|
6226
|
+
*/
|
|
6227
|
+
symbol: string;
|
|
6228
|
+
};
|
|
6229
|
+
|
|
6230
|
+
export type CommodityControllerUpdateResponse = CommodityResponseDto;
|
|
6231
|
+
|
|
6232
|
+
export type CommodityControllerDeleteData = {
|
|
6233
|
+
/**
|
|
6234
|
+
* Region code for tenant context
|
|
6235
|
+
*/
|
|
6236
|
+
region: 'cn' | 'us' | 'de' | 'gb';
|
|
6237
|
+
/**
|
|
6238
|
+
* Commodity symbol
|
|
6239
|
+
*/
|
|
6240
|
+
symbol: string;
|
|
6241
|
+
};
|
|
6242
|
+
|
|
6243
|
+
export type CommodityControllerDeleteResponse = void;
|
|
6244
|
+
|
|
6245
|
+
export type CommodityControllerGetOrCreateData = {
|
|
6246
|
+
/**
|
|
6247
|
+
* Region code for tenant context
|
|
6248
|
+
*/
|
|
6249
|
+
region: 'cn' | 'us' | 'de' | 'gb';
|
|
6250
|
+
/**
|
|
6251
|
+
* Commodity symbol
|
|
6252
|
+
*/
|
|
6253
|
+
symbol: string;
|
|
6254
|
+
};
|
|
6255
|
+
|
|
6256
|
+
export type CommodityControllerGetOrCreateResponse = CommodityResponseDto;
|
|
6257
|
+
|
|
6258
|
+
export type CommodityControllerBulkCreateData = {
|
|
6259
|
+
/**
|
|
6260
|
+
* Region code for tenant context
|
|
6261
|
+
*/
|
|
6262
|
+
region: 'cn' | 'us' | 'de' | 'gb';
|
|
6263
|
+
};
|
|
6264
|
+
|
|
6265
|
+
export type CommodityControllerBulkCreateResponse = Array<CommodityResponseDto>;
|
|
6266
|
+
|
|
6267
|
+
export type PriceControllerCreateData = {
|
|
6268
|
+
/**
|
|
6269
|
+
* Region code for tenant context
|
|
6270
|
+
*/
|
|
6271
|
+
region: 'cn' | 'us' | 'de' | 'gb';
|
|
6272
|
+
requestBody: CreateBeanPriceDto;
|
|
6273
|
+
};
|
|
6274
|
+
|
|
6275
|
+
export type PriceControllerCreateResponse = PriceResponseDto;
|
|
6276
|
+
|
|
6277
|
+
export type PriceControllerFindAllData = {
|
|
6278
|
+
/**
|
|
6279
|
+
* Filter by currency (e.g., BTC, AAPL, USD)
|
|
6280
|
+
*/
|
|
6281
|
+
currency?: string;
|
|
6282
|
+
/**
|
|
6283
|
+
* Filter prices from this date (ISO 8601 format)
|
|
6284
|
+
*/
|
|
6285
|
+
dateFrom?: string;
|
|
6286
|
+
/**
|
|
6287
|
+
* Filter prices to this date (ISO 8601 format)
|
|
5027
6288
|
*/
|
|
5028
|
-
|
|
5029
|
-
requestBody: CreateCommodityDto;
|
|
5030
|
-
};
|
|
5031
|
-
|
|
5032
|
-
export type CommodityControllerCreateResponse = CommodityResponseDto;
|
|
5033
|
-
|
|
5034
|
-
export type CommodityControllerFindAllData = {
|
|
6289
|
+
dateTo?: string;
|
|
5035
6290
|
/**
|
|
5036
|
-
*
|
|
6291
|
+
* Number of items per page (default: 20, max: 100)
|
|
5037
6292
|
*/
|
|
5038
|
-
|
|
6293
|
+
limit?: number;
|
|
5039
6294
|
/**
|
|
5040
|
-
*
|
|
6295
|
+
* Page number for pagination (default: 1)
|
|
5041
6296
|
*/
|
|
5042
|
-
|
|
6297
|
+
page?: number;
|
|
5043
6298
|
/**
|
|
5044
|
-
* Filter by
|
|
6299
|
+
* Filter by quote currency (pricing currency, e.g., USD, CNY)
|
|
5045
6300
|
*/
|
|
5046
|
-
|
|
5047
|
-
};
|
|
5048
|
-
|
|
5049
|
-
export type CommodityControllerFindAllResponse = CommodityListResponseDto;
|
|
5050
|
-
|
|
5051
|
-
export type CommodityControllerFindOneData = {
|
|
6301
|
+
quoteCurrency?: string;
|
|
5052
6302
|
/**
|
|
5053
6303
|
* Region code for tenant context
|
|
5054
6304
|
*/
|
|
5055
6305
|
region: 'cn' | 'us' | 'de' | 'gb';
|
|
5056
6306
|
/**
|
|
5057
|
-
*
|
|
6307
|
+
* Search term for currency or quoteCurrency (case-insensitive partial match)
|
|
5058
6308
|
*/
|
|
5059
|
-
|
|
6309
|
+
search?: string;
|
|
5060
6310
|
};
|
|
5061
6311
|
|
|
5062
|
-
export type
|
|
6312
|
+
export type PriceControllerFindAllResponse = PriceListResponseDto;
|
|
5063
6313
|
|
|
5064
|
-
export type
|
|
6314
|
+
export type PriceControllerFindOneData = {
|
|
5065
6315
|
/**
|
|
5066
|
-
*
|
|
6316
|
+
* Price ID
|
|
5067
6317
|
*/
|
|
5068
|
-
|
|
5069
|
-
requestBody: UpdateCommodityDto;
|
|
6318
|
+
id: string;
|
|
5070
6319
|
/**
|
|
5071
|
-
*
|
|
6320
|
+
* Region code for tenant context
|
|
5072
6321
|
*/
|
|
5073
|
-
|
|
6322
|
+
region: 'cn' | 'us' | 'de' | 'gb';
|
|
5074
6323
|
};
|
|
5075
6324
|
|
|
5076
|
-
export type
|
|
6325
|
+
export type PriceControllerFindOneResponse = PriceResponseDto;
|
|
5077
6326
|
|
|
5078
|
-
export type
|
|
6327
|
+
export type PriceControllerUpdateData = {
|
|
5079
6328
|
/**
|
|
5080
|
-
*
|
|
6329
|
+
* Price ID
|
|
5081
6330
|
*/
|
|
5082
|
-
|
|
6331
|
+
id: string;
|
|
5083
6332
|
/**
|
|
5084
|
-
*
|
|
6333
|
+
* Region code for tenant context
|
|
5085
6334
|
*/
|
|
5086
|
-
|
|
6335
|
+
region: 'cn' | 'us' | 'de' | 'gb';
|
|
6336
|
+
requestBody: UpdateBeanPriceDto;
|
|
5087
6337
|
};
|
|
5088
6338
|
|
|
5089
|
-
export type
|
|
6339
|
+
export type PriceControllerUpdateResponse = PriceResponseDto;
|
|
5090
6340
|
|
|
5091
|
-
export type
|
|
6341
|
+
export type PriceControllerDeleteData = {
|
|
5092
6342
|
/**
|
|
5093
|
-
*
|
|
6343
|
+
* Price ID
|
|
5094
6344
|
*/
|
|
5095
|
-
|
|
6345
|
+
id: string;
|
|
5096
6346
|
/**
|
|
5097
|
-
*
|
|
6347
|
+
* Region code for tenant context
|
|
5098
6348
|
*/
|
|
5099
|
-
|
|
6349
|
+
region: 'cn' | 'us' | 'de' | 'gb';
|
|
5100
6350
|
};
|
|
5101
6351
|
|
|
5102
|
-
export type
|
|
6352
|
+
export type PriceControllerDeleteResponse = void;
|
|
5103
6353
|
|
|
5104
|
-
export type
|
|
6354
|
+
export type PriceControllerBulkCreateData = {
|
|
5105
6355
|
/**
|
|
5106
6356
|
* Region code for tenant context
|
|
5107
6357
|
*/
|
|
5108
6358
|
region: 'cn' | 'us' | 'de' | 'gb';
|
|
6359
|
+
requestBody: Array<string>;
|
|
5109
6360
|
};
|
|
5110
6361
|
|
|
5111
|
-
export type
|
|
6362
|
+
export type PriceControllerBulkCreateResponse = Array<PriceResponseDto>;
|
|
5112
6363
|
|
|
5113
6364
|
export type RecurringRuleControllerCreateData = {
|
|
5114
6365
|
/**
|
|
@@ -5504,7 +6755,7 @@ export type UserControllerSignupUserData = {
|
|
|
5504
6755
|
requestBody: SignupDto;
|
|
5505
6756
|
};
|
|
5506
6757
|
|
|
5507
|
-
export type UserControllerSignupUserResponse =
|
|
6758
|
+
export type UserControllerSignupUserResponse = SignupResponseDto;
|
|
5508
6759
|
|
|
5509
6760
|
export type UserControllerDeleteUserData = {
|
|
5510
6761
|
/**
|
|
@@ -5575,6 +6826,220 @@ export type PropertyControllerDeleteData = {
|
|
|
5575
6826
|
|
|
5576
6827
|
export type PropertyControllerDeleteResponse = void;
|
|
5577
6828
|
|
|
6829
|
+
export type ReportingControllerGetPortfolioTrendsData = {
|
|
6830
|
+
/**
|
|
6831
|
+
* Data granularity
|
|
6832
|
+
*/
|
|
6833
|
+
granularity?: 'day' | 'week' | 'month';
|
|
6834
|
+
/**
|
|
6835
|
+
* Time period
|
|
6836
|
+
*/
|
|
6837
|
+
period?: '1m' | '3m' | '6m' | '1y';
|
|
6838
|
+
/**
|
|
6839
|
+
* Region code for tenant context
|
|
6840
|
+
*/
|
|
6841
|
+
region: 'cn' | 'us' | 'de' | 'gb';
|
|
6842
|
+
};
|
|
6843
|
+
|
|
6844
|
+
export type ReportingControllerGetPortfolioTrendsResponse =
|
|
6845
|
+
PortfolioTrendsResponseDto;
|
|
6846
|
+
|
|
6847
|
+
export type ReportingControllerGetCashFlowTrendsData = {
|
|
6848
|
+
/**
|
|
6849
|
+
* Data granularity (accepted for API symmetry; v1 returns month buckets)
|
|
6850
|
+
*/
|
|
6851
|
+
granularity?: 'day' | 'week' | 'month';
|
|
6852
|
+
/**
|
|
6853
|
+
* Time period
|
|
6854
|
+
*/
|
|
6855
|
+
period?: '1m' | '3m' | '6m' | '1y';
|
|
6856
|
+
/**
|
|
6857
|
+
* Region code for tenant context
|
|
6858
|
+
*/
|
|
6859
|
+
region: 'cn' | 'us' | 'de' | 'gb';
|
|
6860
|
+
};
|
|
6861
|
+
|
|
6862
|
+
export type ReportingControllerGetCashFlowTrendsResponse =
|
|
6863
|
+
CashFlowTrendsResponseDto;
|
|
6864
|
+
|
|
6865
|
+
export type ReportingControllerGenerateSnapshotData = {
|
|
6866
|
+
/**
|
|
6867
|
+
* Region code for tenant context
|
|
6868
|
+
*/
|
|
6869
|
+
region: 'cn' | 'us' | 'de' | 'gb';
|
|
6870
|
+
/**
|
|
6871
|
+
* Optional date (defaults to today)
|
|
6872
|
+
*/
|
|
6873
|
+
requestBody: GenerateSnapshotBody;
|
|
6874
|
+
};
|
|
6875
|
+
|
|
6876
|
+
export type ReportingControllerGenerateSnapshotResponse =
|
|
6877
|
+
GenerateSnapshotResponse;
|
|
6878
|
+
|
|
6879
|
+
export type ReportingControllerBackfillSnapshotsData = {
|
|
6880
|
+
/**
|
|
6881
|
+
* Region code for tenant context
|
|
6882
|
+
*/
|
|
6883
|
+
region: 'cn' | 'us' | 'de' | 'gb';
|
|
6884
|
+
requestBody: BackfillSnapshotsBody;
|
|
6885
|
+
};
|
|
6886
|
+
|
|
6887
|
+
export type ReportingControllerBackfillSnapshotsResponse =
|
|
6888
|
+
BackfillSnapshotsResponse;
|
|
6889
|
+
|
|
6890
|
+
export type EventControllerCreateData = {
|
|
6891
|
+
/**
|
|
6892
|
+
* Region code for tenant context (decorative for life events)
|
|
6893
|
+
*/
|
|
6894
|
+
region: 'cn' | 'us' | 'de' | 'gb';
|
|
6895
|
+
requestBody: CreateBeanEventDto;
|
|
6896
|
+
};
|
|
6897
|
+
|
|
6898
|
+
export type EventControllerCreateResponse = EventResponseDto;
|
|
6899
|
+
|
|
6900
|
+
export type EventControllerFindAllData = {
|
|
6901
|
+
/**
|
|
6902
|
+
* Filter life events from this date (ISO 8601 format)
|
|
6903
|
+
*/
|
|
6904
|
+
from?: string;
|
|
6905
|
+
/**
|
|
6906
|
+
* Number of items per page (default: 20, max: 100)
|
|
6907
|
+
*/
|
|
6908
|
+
limit?: number;
|
|
6909
|
+
/**
|
|
6910
|
+
* Page number for pagination (default: 1)
|
|
6911
|
+
*/
|
|
6912
|
+
page?: number;
|
|
6913
|
+
/**
|
|
6914
|
+
* Search term for description (case-insensitive partial match)
|
|
6915
|
+
*/
|
|
6916
|
+
q?: string;
|
|
6917
|
+
/**
|
|
6918
|
+
* Region code for tenant context (decorative for life events)
|
|
6919
|
+
*/
|
|
6920
|
+
region: 'cn' | 'us' | 'de' | 'gb';
|
|
6921
|
+
/**
|
|
6922
|
+
* Filter life events to this date (ISO 8601 format)
|
|
6923
|
+
*/
|
|
6924
|
+
to?: string;
|
|
6925
|
+
/**
|
|
6926
|
+
* Filter by life event type (exact match)
|
|
6927
|
+
*/
|
|
6928
|
+
type?: string;
|
|
6929
|
+
};
|
|
6930
|
+
|
|
6931
|
+
export type EventControllerFindAllResponse = EventListResponseDto;
|
|
6932
|
+
|
|
6933
|
+
export type EventControllerFindOneData = {
|
|
6934
|
+
/**
|
|
6935
|
+
* Life event ID
|
|
6936
|
+
*/
|
|
6937
|
+
id: string;
|
|
6938
|
+
/**
|
|
6939
|
+
* Region code for tenant context (decorative for life events)
|
|
6940
|
+
*/
|
|
6941
|
+
region: 'cn' | 'us' | 'de' | 'gb';
|
|
6942
|
+
};
|
|
6943
|
+
|
|
6944
|
+
export type EventControllerFindOneResponse = EventResponseDto;
|
|
6945
|
+
|
|
6946
|
+
export type EventControllerUpdateData = {
|
|
6947
|
+
/**
|
|
6948
|
+
* Life event ID
|
|
6949
|
+
*/
|
|
6950
|
+
id: string;
|
|
6951
|
+
/**
|
|
6952
|
+
* Region code for tenant context (decorative for life events)
|
|
6953
|
+
*/
|
|
6954
|
+
region: 'cn' | 'us' | 'de' | 'gb';
|
|
6955
|
+
requestBody: UpdateBeanEventDto;
|
|
6956
|
+
};
|
|
6957
|
+
|
|
6958
|
+
export type EventControllerUpdateResponse = EventResponseDto;
|
|
6959
|
+
|
|
6960
|
+
export type EventControllerDeleteData = {
|
|
6961
|
+
/**
|
|
6962
|
+
* Life event ID
|
|
6963
|
+
*/
|
|
6964
|
+
id: string;
|
|
6965
|
+
/**
|
|
6966
|
+
* Region code for tenant context (decorative for life events)
|
|
6967
|
+
*/
|
|
6968
|
+
region: 'cn' | 'us' | 'de' | 'gb';
|
|
6969
|
+
};
|
|
6970
|
+
|
|
6971
|
+
export type EventControllerDeleteResponse = void;
|
|
6972
|
+
|
|
6973
|
+
export type EventControllerGetSliceData = {
|
|
6974
|
+
accountPattern: string;
|
|
6975
|
+
granularity: string;
|
|
6976
|
+
/**
|
|
6977
|
+
* Life event ID
|
|
6978
|
+
*/
|
|
6979
|
+
id: string;
|
|
6980
|
+
/**
|
|
6981
|
+
* Region code for tenant context (decorative for life events)
|
|
6982
|
+
*/
|
|
6983
|
+
region: 'cn' | 'us' | 'de' | 'gb';
|
|
6984
|
+
};
|
|
6985
|
+
|
|
6986
|
+
export type EventControllerGetSliceResponse = unknown;
|
|
6987
|
+
|
|
6988
|
+
export type OnboardingControllerBootstrapData = {
|
|
6989
|
+
/**
|
|
6990
|
+
* Region code for tenant context
|
|
6991
|
+
*/
|
|
6992
|
+
region: 'cn' | 'us' | 'de' | 'gb';
|
|
6993
|
+
requestBody: OnboardingDto;
|
|
6994
|
+
};
|
|
6995
|
+
|
|
6996
|
+
export type OnboardingControllerBootstrapResponse = unknown;
|
|
6997
|
+
|
|
6998
|
+
export type ReconciliationControllerComputeData = {
|
|
6999
|
+
/**
|
|
7000
|
+
* Region code for tenant context (decorative for reconciliation)
|
|
7001
|
+
*/
|
|
7002
|
+
region: 'cn' | 'us' | 'de' | 'gb';
|
|
7003
|
+
requestBody: ComputeReconciliationDto;
|
|
7004
|
+
};
|
|
7005
|
+
|
|
7006
|
+
export type ReconciliationControllerComputeResponse =
|
|
7007
|
+
ReconciliationComputeResultDto;
|
|
7008
|
+
|
|
7009
|
+
export type ReconciliationControllerAssertData = {
|
|
7010
|
+
/**
|
|
7011
|
+
* Region code for tenant context (decorative for reconciliation)
|
|
7012
|
+
*/
|
|
7013
|
+
region: 'cn' | 'us' | 'de' | 'gb';
|
|
7014
|
+
requestBody: AssertReconciliationDto;
|
|
7015
|
+
};
|
|
7016
|
+
|
|
7017
|
+
export type ReconciliationControllerAssertResponse = ReconciliationRecordDto;
|
|
7018
|
+
|
|
7019
|
+
export type ReconciliationControllerPadData = {
|
|
7020
|
+
/**
|
|
7021
|
+
* Region code for tenant context (decorative for reconciliation)
|
|
7022
|
+
*/
|
|
7023
|
+
region: 'cn' | 'us' | 'de' | 'gb';
|
|
7024
|
+
requestBody: PadReconciliationDto;
|
|
7025
|
+
};
|
|
7026
|
+
|
|
7027
|
+
export type ReconciliationControllerPadResponse = PadResultDto;
|
|
7028
|
+
|
|
7029
|
+
export type ReconciliationControllerHistoryData = {
|
|
7030
|
+
/**
|
|
7031
|
+
* BeanAccount id
|
|
7032
|
+
*/
|
|
7033
|
+
accountId: string;
|
|
7034
|
+
/**
|
|
7035
|
+
* Region code for tenant context (decorative for reconciliation)
|
|
7036
|
+
*/
|
|
7037
|
+
region: 'cn' | 'us' | 'de' | 'gb';
|
|
7038
|
+
};
|
|
7039
|
+
|
|
7040
|
+
export type ReconciliationControllerHistoryResponse =
|
|
7041
|
+
Array<ReconciliationRecordDto>;
|
|
7042
|
+
|
|
5578
7043
|
export type ExportControllerExportBeancountResponse = unknown;
|
|
5579
7044
|
|
|
5580
7045
|
export type FileImportControllerImportFileData = {
|
|
@@ -5652,62 +7117,20 @@ export type ImporterConfigControllerUpdateConfigData = {
|
|
|
5652
7117
|
requestBody: UpdateImporterConfigDto;
|
|
5653
7118
|
};
|
|
5654
7119
|
|
|
5655
|
-
export type ImporterConfigControllerUpdateConfigResponse = ImporterConfigDto;
|
|
5656
|
-
|
|
5657
|
-
export type ImporterConfigControllerResetConfigData = {
|
|
5658
|
-
/**
|
|
5659
|
-
* Importer identifier. Supported importers: alipay, alipay-web, wechat, boc, boc-credit, ccb, cmb, cmbc, cmbc-credit, icbc, icbc-credit, hsbc-hk-credit, hsbc-hk-debit
|
|
5660
|
-
*/
|
|
5661
|
-
importerId: string;
|
|
5662
|
-
/**
|
|
5663
|
-
* Region code for tenant context
|
|
5664
|
-
*/
|
|
5665
|
-
region: 'cn' | 'us' | 'de' | 'gb';
|
|
5666
|
-
};
|
|
5667
|
-
|
|
5668
|
-
export type ImporterConfigControllerResetConfigResponse = ImporterConfigDto;
|
|
5669
|
-
|
|
5670
|
-
export type PlatformControllerFindAllResponse = unknown;
|
|
5671
|
-
|
|
5672
|
-
export type PlatformControllerCreateData = {
|
|
5673
|
-
requestBody: CreatePlatformDto;
|
|
5674
|
-
};
|
|
5675
|
-
|
|
5676
|
-
export type PlatformControllerCreateResponse = unknown;
|
|
5677
|
-
|
|
5678
|
-
export type PlatformControllerGetPlatformListResponse = unknown;
|
|
5679
|
-
|
|
5680
|
-
export type PlatformControllerMatchPlatformsData = {
|
|
5681
|
-
/**
|
|
5682
|
-
* Search query — Chinese name, English name, or abbreviation
|
|
5683
|
-
*/
|
|
5684
|
-
q: string;
|
|
5685
|
-
/**
|
|
5686
|
-
* Region code for category override lookup
|
|
5687
|
-
*/
|
|
5688
|
-
region?: string;
|
|
5689
|
-
};
|
|
5690
|
-
|
|
5691
|
-
export type PlatformControllerMatchPlatformsResponse = unknown;
|
|
5692
|
-
|
|
5693
|
-
export type PlatformControllerUpdateData = {
|
|
5694
|
-
/**
|
|
5695
|
-
* Platform ID
|
|
5696
|
-
*/
|
|
5697
|
-
id: string;
|
|
5698
|
-
requestBody: UpdatePlatformDto;
|
|
5699
|
-
};
|
|
5700
|
-
|
|
5701
|
-
export type PlatformControllerUpdateResponse = unknown;
|
|
7120
|
+
export type ImporterConfigControllerUpdateConfigResponse = ImporterConfigDto;
|
|
5702
7121
|
|
|
5703
|
-
export type
|
|
7122
|
+
export type ImporterConfigControllerResetConfigData = {
|
|
5704
7123
|
/**
|
|
5705
|
-
*
|
|
7124
|
+
* Importer identifier. Supported importers: alipay, alipay-web, wechat, boc, boc-credit, ccb, cmb, cmbc, cmbc-credit, icbc, icbc-credit, hsbc-hk-credit, hsbc-hk-debit
|
|
5706
7125
|
*/
|
|
5707
|
-
|
|
7126
|
+
importerId: string;
|
|
7127
|
+
/**
|
|
7128
|
+
* Region code for tenant context
|
|
7129
|
+
*/
|
|
7130
|
+
region: 'cn' | 'us' | 'de' | 'gb';
|
|
5708
7131
|
};
|
|
5709
7132
|
|
|
5710
|
-
export type
|
|
7133
|
+
export type ImporterConfigControllerResetConfigResponse = ImporterConfigDto;
|
|
5711
7134
|
|
|
5712
7135
|
export type ProviderSyncControllerSyncData = {
|
|
5713
7136
|
/**
|
|
@@ -5723,9 +7146,9 @@ export type ProviderSyncControllerSyncData = {
|
|
|
5723
7146
|
| 'beancount-direct'
|
|
5724
7147
|
| 'parsed-bill';
|
|
5725
7148
|
/**
|
|
5726
|
-
* Region code
|
|
7149
|
+
* Region code for tenant context
|
|
5727
7150
|
*/
|
|
5728
|
-
region:
|
|
7151
|
+
region: 'cn' | 'us' | 'de' | 'gb';
|
|
5729
7152
|
requestBody: ProviderSyncDto;
|
|
5730
7153
|
};
|
|
5731
7154
|
|
|
@@ -5754,6 +7177,49 @@ export type ProviderSyncControllerIsProviderSupportedData = {
|
|
|
5754
7177
|
|
|
5755
7178
|
export type ProviderSyncControllerIsProviderSupportedResponse = unknown;
|
|
5756
7179
|
|
|
7180
|
+
export type ExternalAccountLinkControllerCreateData = {
|
|
7181
|
+
/**
|
|
7182
|
+
* Region code for tenant context
|
|
7183
|
+
*/
|
|
7184
|
+
region: 'cn' | 'us' | 'de' | 'gb';
|
|
7185
|
+
requestBody: CreateExternalAccountLinkDto;
|
|
7186
|
+
};
|
|
7187
|
+
|
|
7188
|
+
export type ExternalAccountLinkControllerCreateResponse =
|
|
7189
|
+
ExternalAccountLinkResponseDto;
|
|
7190
|
+
|
|
7191
|
+
export type ExternalAccountLinkControllerFindAllData = {
|
|
7192
|
+
provider: string;
|
|
7193
|
+
/**
|
|
7194
|
+
* Region code for tenant context
|
|
7195
|
+
*/
|
|
7196
|
+
region: 'cn' | 'us' | 'de' | 'gb';
|
|
7197
|
+
};
|
|
7198
|
+
|
|
7199
|
+
export type ExternalAccountLinkControllerFindAllResponse =
|
|
7200
|
+
ExternalAccountLinkListResponseDto;
|
|
7201
|
+
|
|
7202
|
+
export type ExternalAccountLinkControllerFindOneData = {
|
|
7203
|
+
id: string;
|
|
7204
|
+
/**
|
|
7205
|
+
* Region code for tenant context
|
|
7206
|
+
*/
|
|
7207
|
+
region: 'cn' | 'us' | 'de' | 'gb';
|
|
7208
|
+
};
|
|
7209
|
+
|
|
7210
|
+
export type ExternalAccountLinkControllerFindOneResponse =
|
|
7211
|
+
ExternalAccountLinkResponseDto;
|
|
7212
|
+
|
|
7213
|
+
export type ExternalAccountLinkControllerRemoveData = {
|
|
7214
|
+
id: string;
|
|
7215
|
+
/**
|
|
7216
|
+
* Region code for tenant context
|
|
7217
|
+
*/
|
|
7218
|
+
region: 'cn' | 'us' | 'de' | 'gb';
|
|
7219
|
+
};
|
|
7220
|
+
|
|
7221
|
+
export type ExternalAccountLinkControllerRemoveResponse = void;
|
|
7222
|
+
|
|
5757
7223
|
export type TelemetryControllerReportTelemetryData = {
|
|
5758
7224
|
/**
|
|
5759
7225
|
* Region code for tenant context
|
|
@@ -5764,6 +7230,29 @@ export type TelemetryControllerReportTelemetryData = {
|
|
|
5764
7230
|
|
|
5765
7231
|
export type TelemetryControllerReportTelemetryResponse = unknown;
|
|
5766
7232
|
|
|
7233
|
+
export type TelemetryControllerReportCoverageMissData = {
|
|
7234
|
+
/**
|
|
7235
|
+
* Region code for tenant context
|
|
7236
|
+
*/
|
|
7237
|
+
region: 'cn' | 'us' | 'de' | 'gb';
|
|
7238
|
+
requestBody: UncoveredFormatMissDto;
|
|
7239
|
+
};
|
|
7240
|
+
|
|
7241
|
+
export type TelemetryControllerReportCoverageMissResponse = unknown;
|
|
7242
|
+
|
|
7243
|
+
export type TelemetryControllerGetCoverageMetricsData = {
|
|
7244
|
+
/**
|
|
7245
|
+
* Region code for tenant context
|
|
7246
|
+
*/
|
|
7247
|
+
region: 'cn' | 'us' | 'de' | 'gb';
|
|
7248
|
+
/**
|
|
7249
|
+
* Top-N uncovered formats (default 10)
|
|
7250
|
+
*/
|
|
7251
|
+
topN?: unknown;
|
|
7252
|
+
};
|
|
7253
|
+
|
|
7254
|
+
export type TelemetryControllerGetCoverageMetricsResponse = unknown;
|
|
7255
|
+
|
|
5767
7256
|
export type NlpControllerProcessNaturalLanguageData = {
|
|
5768
7257
|
/**
|
|
5769
7258
|
* Region code for tenant context
|
|
@@ -5803,6 +7292,49 @@ export type NlpControllerGetSessionData = {
|
|
|
5803
7292
|
|
|
5804
7293
|
export type NlpControllerGetSessionResponse = unknown;
|
|
5805
7294
|
|
|
7295
|
+
export type PlatformControllerFindAllResponse = unknown;
|
|
7296
|
+
|
|
7297
|
+
export type PlatformControllerCreateData = {
|
|
7298
|
+
requestBody: CreatePlatformDto;
|
|
7299
|
+
};
|
|
7300
|
+
|
|
7301
|
+
export type PlatformControllerCreateResponse = unknown;
|
|
7302
|
+
|
|
7303
|
+
export type PlatformControllerGetPlatformListResponse =
|
|
7304
|
+
Array<PlatformListItemDto>;
|
|
7305
|
+
|
|
7306
|
+
export type PlatformControllerMatchPlatformsData = {
|
|
7307
|
+
/**
|
|
7308
|
+
* Search query — Chinese name, English name, or abbreviation
|
|
7309
|
+
*/
|
|
7310
|
+
q: string;
|
|
7311
|
+
/**
|
|
7312
|
+
* Region code for category override lookup
|
|
7313
|
+
*/
|
|
7314
|
+
region?: string;
|
|
7315
|
+
};
|
|
7316
|
+
|
|
7317
|
+
export type PlatformControllerMatchPlatformsResponse = PlatformMatchResponseDto;
|
|
7318
|
+
|
|
7319
|
+
export type PlatformControllerUpdateData = {
|
|
7320
|
+
/**
|
|
7321
|
+
* Platform ID
|
|
7322
|
+
*/
|
|
7323
|
+
id: string;
|
|
7324
|
+
requestBody: UpdatePlatformDto;
|
|
7325
|
+
};
|
|
7326
|
+
|
|
7327
|
+
export type PlatformControllerUpdateResponse = unknown;
|
|
7328
|
+
|
|
7329
|
+
export type PlatformControllerDeleteData = {
|
|
7330
|
+
/**
|
|
7331
|
+
* Platform ID
|
|
7332
|
+
*/
|
|
7333
|
+
id: string;
|
|
7334
|
+
};
|
|
7335
|
+
|
|
7336
|
+
export type PlatformControllerDeleteResponse = void;
|
|
7337
|
+
|
|
5806
7338
|
export type DashboardControllerGetNetWorthData = {
|
|
5807
7339
|
/**
|
|
5808
7340
|
* Date for balance calculation (ISO 8601 format)
|
|
@@ -5817,6 +7349,10 @@ export type DashboardControllerGetNetWorthData = {
|
|
|
5817
7349
|
export type DashboardControllerGetNetWorthResponse = NetWorthResponseDto;
|
|
5818
7350
|
|
|
5819
7351
|
export type DashboardControllerGetAccountsData = {
|
|
7352
|
+
/**
|
|
7353
|
+
* Scope to a single account (only valid with groupBy=holdingAssetClass, ADR-0105 §6)
|
|
7354
|
+
*/
|
|
7355
|
+
accountId?: string;
|
|
5820
7356
|
/**
|
|
5821
7357
|
* Date for balance calculation (ISO 8601 format)
|
|
5822
7358
|
*/
|
|
@@ -5824,7 +7360,11 @@ export type DashboardControllerGetAccountsData = {
|
|
|
5824
7360
|
/**
|
|
5825
7361
|
* Grouping strategy
|
|
5826
7362
|
*/
|
|
5827
|
-
groupBy?:
|
|
7363
|
+
groupBy?:
|
|
7364
|
+
| 'platform'
|
|
7365
|
+
| 'assetClass'
|
|
7366
|
+
| 'holdingAssetClass'
|
|
7367
|
+
| 'holdingAssetClassByAccount';
|
|
5828
7368
|
/**
|
|
5829
7369
|
* Region code for tenant context
|
|
5830
7370
|
*/
|
|
@@ -5833,7 +7373,8 @@ export type DashboardControllerGetAccountsData = {
|
|
|
5833
7373
|
|
|
5834
7374
|
export type DashboardControllerGetAccountsResponse =
|
|
5835
7375
|
| AccountsResponseDto
|
|
5836
|
-
| AssetClassAccountsResponseDto
|
|
7376
|
+
| AssetClassAccountsResponseDto
|
|
7377
|
+
| HoldingAssetClassCrossAccountResponseDto;
|
|
5837
7378
|
|
|
5838
7379
|
export type DashboardControllerGetCashFlowData = {
|
|
5839
7380
|
/**
|
|
@@ -5848,13 +7389,17 @@ export type DashboardControllerGetCashFlowData = {
|
|
|
5848
7389
|
|
|
5849
7390
|
export type DashboardControllerGetCashFlowResponse = CashFlowResponseDto;
|
|
5850
7391
|
|
|
5851
|
-
export type
|
|
7392
|
+
export type DashboardControllerGetExpensesData = {
|
|
5852
7393
|
/**
|
|
5853
|
-
*
|
|
7394
|
+
* Account root to aggregate (expense → ^Expenses:, income → ^Income:)
|
|
5854
7395
|
*/
|
|
5855
|
-
|
|
7396
|
+
flow?: 'expense' | 'income';
|
|
5856
7397
|
/**
|
|
5857
|
-
*
|
|
7398
|
+
* Grouping strategy
|
|
7399
|
+
*/
|
|
7400
|
+
groupBy?: 'category';
|
|
7401
|
+
/**
|
|
7402
|
+
* Time window (1m = current calendar month)
|
|
5858
7403
|
*/
|
|
5859
7404
|
period?: '1m' | '3m' | '6m' | '1y';
|
|
5860
7405
|
/**
|
|
@@ -5863,33 +7408,29 @@ export type ReportingControllerGetPortfolioTrendsData = {
|
|
|
5863
7408
|
region: 'cn' | 'us' | 'de' | 'gb';
|
|
5864
7409
|
};
|
|
5865
7410
|
|
|
5866
|
-
export type
|
|
5867
|
-
|
|
7411
|
+
export type DashboardControllerGetExpensesResponse =
|
|
7412
|
+
ExpensesByCategoryResponseDto;
|
|
5868
7413
|
|
|
5869
|
-
export type
|
|
7414
|
+
export type HoldingPnlControllerGetHoldingPnlData = {
|
|
5870
7415
|
/**
|
|
5871
|
-
*
|
|
7416
|
+
* Scope to a single account
|
|
5872
7417
|
*/
|
|
5873
|
-
|
|
7418
|
+
accountId?: string;
|
|
5874
7419
|
/**
|
|
5875
|
-
*
|
|
7420
|
+
* As-of date (ISO 8601), defaults to today
|
|
5876
7421
|
*/
|
|
5877
|
-
|
|
5878
|
-
|
|
5879
|
-
|
|
5880
|
-
|
|
5881
|
-
|
|
5882
|
-
|
|
5883
|
-
export type ReportingControllerBackfillSnapshotsData = {
|
|
7422
|
+
asOf?: string;
|
|
7423
|
+
/**
|
|
7424
|
+
* Realized-P&L lot-matching method (default average). Does not affect the average-cost unrealized basis.
|
|
7425
|
+
*/
|
|
7426
|
+
method?: 'FIFO' | 'average';
|
|
5884
7427
|
/**
|
|
5885
7428
|
* Region code for tenant context
|
|
5886
7429
|
*/
|
|
5887
7430
|
region: 'cn' | 'us' | 'de' | 'gb';
|
|
5888
|
-
requestBody: BackfillSnapshotsBody;
|
|
5889
7431
|
};
|
|
5890
7432
|
|
|
5891
|
-
export type
|
|
5892
|
-
BackfillSnapshotsResponse;
|
|
7433
|
+
export type HoldingPnlControllerGetHoldingPnlResponse = HoldingPnlResponseDto;
|
|
5893
7434
|
|
|
5894
7435
|
export type ApiKeysControllerCreateApiKeyResponse = unknown;
|
|
5895
7436
|
|
|
@@ -5897,7 +7438,7 @@ export type AuthControllerAccessTokenLoginData = {
|
|
|
5897
7438
|
requestBody: AnonymousLoginDto;
|
|
5898
7439
|
};
|
|
5899
7440
|
|
|
5900
|
-
export type AuthControllerAccessTokenLoginResponse =
|
|
7441
|
+
export type AuthControllerAccessTokenLoginResponse = AnonymousLoginResponseDto;
|
|
5901
7442
|
|
|
5902
7443
|
export type CacheControllerFlushCacheResponse = unknown;
|
|
5903
7444
|
|
|
@@ -6045,6 +7586,25 @@ export type $OpenApiTs = {
|
|
|
6045
7586
|
};
|
|
6046
7587
|
};
|
|
6047
7588
|
};
|
|
7589
|
+
'/api/v1/{region}/bean/accounts/{id}/opening-balance': {
|
|
7590
|
+
post: {
|
|
7591
|
+
req: AccountControllerAddOpeningBalanceData;
|
|
7592
|
+
res: {
|
|
7593
|
+
/**
|
|
7594
|
+
* Opening-balance transaction created
|
|
7595
|
+
*/
|
|
7596
|
+
201: OpeningBalanceResultDto;
|
|
7597
|
+
/**
|
|
7598
|
+
* Account not found
|
|
7599
|
+
*/
|
|
7600
|
+
404: unknown;
|
|
7601
|
+
/**
|
|
7602
|
+
* An opening balance already exists for this account
|
|
7603
|
+
*/
|
|
7604
|
+
409: unknown;
|
|
7605
|
+
};
|
|
7606
|
+
};
|
|
7607
|
+
};
|
|
6048
7608
|
'/api/v1/{region}/bean/account-standards': {
|
|
6049
7609
|
get: {
|
|
6050
7610
|
req: AccountStandardsControllerGetTemplatesData;
|
|
@@ -6141,6 +7701,29 @@ export type $OpenApiTs = {
|
|
|
6141
7701
|
};
|
|
6142
7702
|
};
|
|
6143
7703
|
};
|
|
7704
|
+
'/api/v1/{region}/bean/transactions/{id}/correct': {
|
|
7705
|
+
post: {
|
|
7706
|
+
req: TransactionControllerCorrectData;
|
|
7707
|
+
res: {
|
|
7708
|
+
/**
|
|
7709
|
+
* Corrected transaction created
|
|
7710
|
+
*/
|
|
7711
|
+
201: TransactionDetailDto;
|
|
7712
|
+
/**
|
|
7713
|
+
* Original transaction not found
|
|
7714
|
+
*/
|
|
7715
|
+
404: ApiProblemResponseDto;
|
|
7716
|
+
/**
|
|
7717
|
+
* Original no longer ACTIVE (concurrent modification)
|
|
7718
|
+
*/
|
|
7719
|
+
409: ApiProblemResponseDto;
|
|
7720
|
+
/**
|
|
7721
|
+
* Pipeline validation failed (does not balance, invalid accounts)
|
|
7722
|
+
*/
|
|
7723
|
+
422: ApiProblemResponseDto;
|
|
7724
|
+
};
|
|
7725
|
+
};
|
|
7726
|
+
};
|
|
6144
7727
|
'/api/v1/{region}/bean/transactions/tags': {
|
|
6145
7728
|
get: {
|
|
6146
7729
|
req: TransactionControllerSuggestTagsData;
|
|
@@ -6531,102 +8114,186 @@ export type $OpenApiTs = {
|
|
|
6531
8114
|
/**
|
|
6532
8115
|
* Payee profile not found
|
|
6533
8116
|
*/
|
|
6534
|
-
404: ApiProblemResponseDto;
|
|
8117
|
+
404: ApiProblemResponseDto;
|
|
8118
|
+
};
|
|
8119
|
+
};
|
|
8120
|
+
};
|
|
8121
|
+
'/api/v1/{region}/bean/commodities': {
|
|
8122
|
+
post: {
|
|
8123
|
+
req: CommodityControllerCreateData;
|
|
8124
|
+
res: {
|
|
8125
|
+
/**
|
|
8126
|
+
* Commodity created successfully
|
|
8127
|
+
*/
|
|
8128
|
+
201: CommodityResponseDto;
|
|
8129
|
+
/**
|
|
8130
|
+
* Invalid input data
|
|
8131
|
+
*/
|
|
8132
|
+
400: ApiProblemResponseDto;
|
|
8133
|
+
/**
|
|
8134
|
+
* Commodity already exists
|
|
8135
|
+
*/
|
|
8136
|
+
409: ApiProblemResponseDto;
|
|
8137
|
+
};
|
|
8138
|
+
};
|
|
8139
|
+
get: {
|
|
8140
|
+
req: CommodityControllerFindAllData;
|
|
8141
|
+
res: {
|
|
8142
|
+
/**
|
|
8143
|
+
* Commodities retrieved successfully
|
|
8144
|
+
*/
|
|
8145
|
+
200: CommodityListResponseDto;
|
|
8146
|
+
};
|
|
8147
|
+
};
|
|
8148
|
+
};
|
|
8149
|
+
'/api/v1/{region}/bean/commodities/{symbol}': {
|
|
8150
|
+
get: {
|
|
8151
|
+
req: CommodityControllerFindOneData;
|
|
8152
|
+
res: {
|
|
8153
|
+
/**
|
|
8154
|
+
* Commodity retrieved successfully
|
|
8155
|
+
*/
|
|
8156
|
+
200: CommodityResponseDto;
|
|
8157
|
+
/**
|
|
8158
|
+
* Commodity not found
|
|
8159
|
+
*/
|
|
8160
|
+
404: ApiProblemResponseDto;
|
|
8161
|
+
};
|
|
8162
|
+
};
|
|
8163
|
+
put: {
|
|
8164
|
+
req: CommodityControllerUpdateData;
|
|
8165
|
+
res: {
|
|
8166
|
+
/**
|
|
8167
|
+
* Commodity updated successfully
|
|
8168
|
+
*/
|
|
8169
|
+
200: CommodityResponseDto;
|
|
8170
|
+
/**
|
|
8171
|
+
* Invalid input data
|
|
8172
|
+
*/
|
|
8173
|
+
400: ApiProblemResponseDto;
|
|
8174
|
+
/**
|
|
8175
|
+
* Commodity not found
|
|
8176
|
+
*/
|
|
8177
|
+
404: ApiProblemResponseDto;
|
|
8178
|
+
};
|
|
8179
|
+
};
|
|
8180
|
+
delete: {
|
|
8181
|
+
req: CommodityControllerDeleteData;
|
|
8182
|
+
res: {
|
|
8183
|
+
/**
|
|
8184
|
+
* Commodity deleted successfully
|
|
8185
|
+
*/
|
|
8186
|
+
204: void;
|
|
8187
|
+
/**
|
|
8188
|
+
* Commodity not found
|
|
8189
|
+
*/
|
|
8190
|
+
404: ApiProblemResponseDto;
|
|
8191
|
+
};
|
|
8192
|
+
};
|
|
8193
|
+
};
|
|
8194
|
+
'/api/v1/{region}/bean/commodities/{symbol}/ensure': {
|
|
8195
|
+
post: {
|
|
8196
|
+
req: CommodityControllerGetOrCreateData;
|
|
8197
|
+
res: {
|
|
8198
|
+
/**
|
|
8199
|
+
* Commodity retrieved or created
|
|
8200
|
+
*/
|
|
8201
|
+
200: CommodityResponseDto;
|
|
8202
|
+
};
|
|
8203
|
+
};
|
|
8204
|
+
};
|
|
8205
|
+
'/api/v1/{region}/bean/commodities/bulk': {
|
|
8206
|
+
post: {
|
|
8207
|
+
req: CommodityControllerBulkCreateData;
|
|
8208
|
+
res: {
|
|
8209
|
+
/**
|
|
8210
|
+
* Commodities created successfully
|
|
8211
|
+
*/
|
|
8212
|
+
201: Array<CommodityResponseDto>;
|
|
6535
8213
|
};
|
|
6536
8214
|
};
|
|
6537
8215
|
};
|
|
6538
|
-
'/api/v1/{region}/bean/
|
|
8216
|
+
'/api/v1/{region}/bean/prices': {
|
|
6539
8217
|
post: {
|
|
6540
|
-
req:
|
|
8218
|
+
req: PriceControllerCreateData;
|
|
6541
8219
|
res: {
|
|
6542
8220
|
/**
|
|
6543
|
-
*
|
|
8221
|
+
* Price created successfully
|
|
6544
8222
|
*/
|
|
6545
|
-
201:
|
|
8223
|
+
201: PriceResponseDto;
|
|
6546
8224
|
/**
|
|
6547
|
-
*
|
|
8225
|
+
* Currency or quoteCurrency commodity not found
|
|
6548
8226
|
*/
|
|
6549
|
-
|
|
8227
|
+
404: unknown;
|
|
6550
8228
|
/**
|
|
6551
|
-
*
|
|
8229
|
+
* Price already exists for this currency pair and date
|
|
6552
8230
|
*/
|
|
6553
|
-
409:
|
|
8231
|
+
409: unknown;
|
|
6554
8232
|
};
|
|
6555
8233
|
};
|
|
6556
8234
|
get: {
|
|
6557
|
-
req:
|
|
8235
|
+
req: PriceControllerFindAllData;
|
|
6558
8236
|
res: {
|
|
6559
8237
|
/**
|
|
6560
|
-
*
|
|
8238
|
+
* Prices retrieved successfully
|
|
6561
8239
|
*/
|
|
6562
|
-
200:
|
|
8240
|
+
200: PriceListResponseDto;
|
|
6563
8241
|
};
|
|
6564
8242
|
};
|
|
6565
8243
|
};
|
|
6566
|
-
'/api/v1/{region}/bean/
|
|
8244
|
+
'/api/v1/{region}/bean/prices/{id}': {
|
|
6567
8245
|
get: {
|
|
6568
|
-
req:
|
|
8246
|
+
req: PriceControllerFindOneData;
|
|
6569
8247
|
res: {
|
|
6570
8248
|
/**
|
|
6571
|
-
*
|
|
8249
|
+
* Price retrieved successfully
|
|
6572
8250
|
*/
|
|
6573
|
-
200:
|
|
8251
|
+
200: PriceResponseDto;
|
|
6574
8252
|
/**
|
|
6575
|
-
*
|
|
8253
|
+
* Price not found
|
|
6576
8254
|
*/
|
|
6577
|
-
404:
|
|
8255
|
+
404: unknown;
|
|
6578
8256
|
};
|
|
6579
8257
|
};
|
|
6580
8258
|
put: {
|
|
6581
|
-
req:
|
|
8259
|
+
req: PriceControllerUpdateData;
|
|
6582
8260
|
res: {
|
|
6583
8261
|
/**
|
|
6584
|
-
*
|
|
8262
|
+
* Price updated successfully
|
|
6585
8263
|
*/
|
|
6586
|
-
200:
|
|
8264
|
+
200: PriceResponseDto;
|
|
6587
8265
|
/**
|
|
6588
|
-
*
|
|
8266
|
+
* Price not found
|
|
6589
8267
|
*/
|
|
6590
|
-
|
|
8268
|
+
404: unknown;
|
|
6591
8269
|
/**
|
|
6592
|
-
*
|
|
8270
|
+
* Updated price conflicts with existing price
|
|
6593
8271
|
*/
|
|
6594
|
-
|
|
8272
|
+
409: unknown;
|
|
6595
8273
|
};
|
|
6596
8274
|
};
|
|
6597
8275
|
delete: {
|
|
6598
|
-
req:
|
|
8276
|
+
req: PriceControllerDeleteData;
|
|
6599
8277
|
res: {
|
|
6600
8278
|
/**
|
|
6601
|
-
*
|
|
8279
|
+
* Price deleted successfully
|
|
6602
8280
|
*/
|
|
6603
8281
|
204: void;
|
|
6604
8282
|
/**
|
|
6605
|
-
*
|
|
6606
|
-
*/
|
|
6607
|
-
404: ApiProblemResponseDto;
|
|
6608
|
-
};
|
|
6609
|
-
};
|
|
6610
|
-
};
|
|
6611
|
-
'/api/v1/{region}/bean/commodities/{symbol}/ensure': {
|
|
6612
|
-
post: {
|
|
6613
|
-
req: CommodityControllerGetOrCreateData;
|
|
6614
|
-
res: {
|
|
6615
|
-
/**
|
|
6616
|
-
* Commodity retrieved or created
|
|
8283
|
+
* Price not found
|
|
6617
8284
|
*/
|
|
6618
|
-
|
|
8285
|
+
404: unknown;
|
|
6619
8286
|
};
|
|
6620
8287
|
};
|
|
6621
8288
|
};
|
|
6622
|
-
'/api/v1/{region}/bean/
|
|
8289
|
+
'/api/v1/{region}/bean/prices/bulk': {
|
|
6623
8290
|
post: {
|
|
6624
|
-
req:
|
|
8291
|
+
req: PriceControllerBulkCreateData;
|
|
6625
8292
|
res: {
|
|
6626
8293
|
/**
|
|
6627
|
-
*
|
|
8294
|
+
* Prices created successfully
|
|
6628
8295
|
*/
|
|
6629
|
-
201: Array<
|
|
8296
|
+
201: Array<PriceResponseDto>;
|
|
6630
8297
|
};
|
|
6631
8298
|
};
|
|
6632
8299
|
};
|
|
@@ -7117,7 +8784,7 @@ export type $OpenApiTs = {
|
|
|
7117
8784
|
/**
|
|
7118
8785
|
* User created successfully
|
|
7119
8786
|
*/
|
|
7120
|
-
201:
|
|
8787
|
+
201: SignupResponseDto;
|
|
7121
8788
|
/**
|
|
7122
8789
|
* Invalid Turnstile token (when Turnstile is enabled)
|
|
7123
8790
|
*/
|
|
@@ -7218,57 +8885,304 @@ export type $OpenApiTs = {
|
|
|
7218
8885
|
req: PropertyControllerGetByKeyData;
|
|
7219
8886
|
res: {
|
|
7220
8887
|
/**
|
|
7221
|
-
* Property retrieved successfully
|
|
8888
|
+
* Property retrieved successfully
|
|
8889
|
+
*/
|
|
8890
|
+
200: unknown;
|
|
8891
|
+
/**
|
|
8892
|
+
* Unauthorized
|
|
8893
|
+
*/
|
|
8894
|
+
401: unknown;
|
|
8895
|
+
/**
|
|
8896
|
+
* Forbidden - insufficient permissions
|
|
8897
|
+
*/
|
|
8898
|
+
403: unknown;
|
|
8899
|
+
/**
|
|
8900
|
+
* Property not found
|
|
8901
|
+
*/
|
|
8902
|
+
404: unknown;
|
|
8903
|
+
};
|
|
8904
|
+
};
|
|
8905
|
+
put: {
|
|
8906
|
+
req: PropertyControllerUpdateData;
|
|
8907
|
+
res: {
|
|
8908
|
+
/**
|
|
8909
|
+
* Property updated successfully
|
|
8910
|
+
*/
|
|
8911
|
+
200: unknown;
|
|
8912
|
+
/**
|
|
8913
|
+
* Unauthorized
|
|
8914
|
+
*/
|
|
8915
|
+
401: unknown;
|
|
8916
|
+
/**
|
|
8917
|
+
* Forbidden - insufficient permissions
|
|
8918
|
+
*/
|
|
8919
|
+
403: unknown;
|
|
8920
|
+
};
|
|
8921
|
+
};
|
|
8922
|
+
delete: {
|
|
8923
|
+
req: PropertyControllerDeleteData;
|
|
8924
|
+
res: {
|
|
8925
|
+
/**
|
|
8926
|
+
* Property deleted successfully
|
|
8927
|
+
*/
|
|
8928
|
+
204: void;
|
|
8929
|
+
/**
|
|
8930
|
+
* Unauthorized
|
|
8931
|
+
*/
|
|
8932
|
+
401: unknown;
|
|
8933
|
+
/**
|
|
8934
|
+
* Forbidden - insufficient permissions
|
|
8935
|
+
*/
|
|
8936
|
+
403: unknown;
|
|
8937
|
+
/**
|
|
8938
|
+
* Property not found
|
|
8939
|
+
*/
|
|
8940
|
+
404: unknown;
|
|
8941
|
+
};
|
|
8942
|
+
};
|
|
8943
|
+
};
|
|
8944
|
+
'/api/v1/{region}/reporting/portfolio/trends': {
|
|
8945
|
+
get: {
|
|
8946
|
+
req: ReportingControllerGetPortfolioTrendsData;
|
|
8947
|
+
res: {
|
|
8948
|
+
/**
|
|
8949
|
+
* Trends retrieved successfully
|
|
8950
|
+
*/
|
|
8951
|
+
200: PortfolioTrendsResponseDto;
|
|
8952
|
+
/**
|
|
8953
|
+
* User not authenticated
|
|
8954
|
+
*/
|
|
8955
|
+
401: unknown;
|
|
8956
|
+
};
|
|
8957
|
+
};
|
|
8958
|
+
};
|
|
8959
|
+
'/api/v1/{region}/reporting/cash-flow/trends': {
|
|
8960
|
+
get: {
|
|
8961
|
+
req: ReportingControllerGetCashFlowTrendsData;
|
|
8962
|
+
res: {
|
|
8963
|
+
/**
|
|
8964
|
+
* Cash-flow trends retrieved successfully
|
|
8965
|
+
*/
|
|
8966
|
+
200: CashFlowTrendsResponseDto;
|
|
8967
|
+
/**
|
|
8968
|
+
* User not authenticated
|
|
8969
|
+
*/
|
|
8970
|
+
401: unknown;
|
|
8971
|
+
};
|
|
8972
|
+
};
|
|
8973
|
+
};
|
|
8974
|
+
'/api/v1/{region}/reporting/snapshots/generate': {
|
|
8975
|
+
post: {
|
|
8976
|
+
req: ReportingControllerGenerateSnapshotData;
|
|
8977
|
+
res: {
|
|
8978
|
+
/**
|
|
8979
|
+
* Snapshot generated successfully
|
|
8980
|
+
*/
|
|
8981
|
+
200: GenerateSnapshotResponse;
|
|
8982
|
+
/**
|
|
8983
|
+
* Invalid date format
|
|
8984
|
+
*/
|
|
8985
|
+
400: unknown;
|
|
8986
|
+
/**
|
|
8987
|
+
* User not authenticated
|
|
8988
|
+
*/
|
|
8989
|
+
401: unknown;
|
|
8990
|
+
};
|
|
8991
|
+
};
|
|
8992
|
+
};
|
|
8993
|
+
'/api/v1/{region}/reporting/snapshots/backfill': {
|
|
8994
|
+
post: {
|
|
8995
|
+
req: ReportingControllerBackfillSnapshotsData;
|
|
8996
|
+
res: {
|
|
8997
|
+
/**
|
|
8998
|
+
* Backfill completed successfully
|
|
8999
|
+
*/
|
|
9000
|
+
200: BackfillSnapshotsResponse;
|
|
9001
|
+
/**
|
|
9002
|
+
* Invalid date format or range
|
|
9003
|
+
*/
|
|
9004
|
+
400: unknown;
|
|
9005
|
+
/**
|
|
9006
|
+
* User not authenticated
|
|
9007
|
+
*/
|
|
9008
|
+
401: unknown;
|
|
9009
|
+
/**
|
|
9010
|
+
* Backfill already in progress for this user
|
|
9011
|
+
*/
|
|
9012
|
+
409: unknown;
|
|
9013
|
+
};
|
|
9014
|
+
};
|
|
9015
|
+
};
|
|
9016
|
+
'/api/v1/{region}/bean/events': {
|
|
9017
|
+
post: {
|
|
9018
|
+
req: EventControllerCreateData;
|
|
9019
|
+
res: {
|
|
9020
|
+
/**
|
|
9021
|
+
* Life event created successfully
|
|
9022
|
+
*/
|
|
9023
|
+
201: EventResponseDto;
|
|
9024
|
+
/**
|
|
9025
|
+
* Life event already exists for this (userId, type, date) combination
|
|
9026
|
+
*/
|
|
9027
|
+
409: unknown;
|
|
9028
|
+
};
|
|
9029
|
+
};
|
|
9030
|
+
get: {
|
|
9031
|
+
req: EventControllerFindAllData;
|
|
9032
|
+
res: {
|
|
9033
|
+
/**
|
|
9034
|
+
* Life events retrieved successfully
|
|
9035
|
+
*/
|
|
9036
|
+
200: EventListResponseDto;
|
|
9037
|
+
};
|
|
9038
|
+
};
|
|
9039
|
+
};
|
|
9040
|
+
'/api/v1/{region}/bean/events/{id}': {
|
|
9041
|
+
get: {
|
|
9042
|
+
req: EventControllerFindOneData;
|
|
9043
|
+
res: {
|
|
9044
|
+
/**
|
|
9045
|
+
* Life event retrieved successfully
|
|
9046
|
+
*/
|
|
9047
|
+
200: EventResponseDto;
|
|
9048
|
+
/**
|
|
9049
|
+
* Life event not found
|
|
9050
|
+
*/
|
|
9051
|
+
404: unknown;
|
|
9052
|
+
};
|
|
9053
|
+
};
|
|
9054
|
+
put: {
|
|
9055
|
+
req: EventControllerUpdateData;
|
|
9056
|
+
res: {
|
|
9057
|
+
/**
|
|
9058
|
+
* Life event updated successfully
|
|
9059
|
+
*/
|
|
9060
|
+
200: EventResponseDto;
|
|
9061
|
+
/**
|
|
9062
|
+
* If-Match header is not a valid ISO 8601 date
|
|
9063
|
+
*/
|
|
9064
|
+
400: unknown;
|
|
9065
|
+
/**
|
|
9066
|
+
* Life event not found
|
|
9067
|
+
*/
|
|
9068
|
+
404: unknown;
|
|
9069
|
+
/**
|
|
9070
|
+
* Updated event conflicts with an existing (userId, type, date) combination
|
|
9071
|
+
*/
|
|
9072
|
+
409: unknown;
|
|
9073
|
+
/**
|
|
9074
|
+
* If-Match precondition failed (updatedAt mismatch)
|
|
9075
|
+
*/
|
|
9076
|
+
412: unknown;
|
|
9077
|
+
};
|
|
9078
|
+
};
|
|
9079
|
+
delete: {
|
|
9080
|
+
req: EventControllerDeleteData;
|
|
9081
|
+
res: {
|
|
9082
|
+
/**
|
|
9083
|
+
* Life event deleted successfully
|
|
9084
|
+
*/
|
|
9085
|
+
204: void;
|
|
9086
|
+
/**
|
|
9087
|
+
* Life event not found
|
|
9088
|
+
*/
|
|
9089
|
+
404: unknown;
|
|
9090
|
+
};
|
|
9091
|
+
};
|
|
9092
|
+
};
|
|
9093
|
+
'/api/v1/{region}/bean/events/{id}/slice': {
|
|
9094
|
+
get: {
|
|
9095
|
+
req: EventControllerGetSliceData;
|
|
9096
|
+
res: {
|
|
9097
|
+
/**
|
|
9098
|
+
* Time-series sliced by the life event range
|
|
9099
|
+
*/
|
|
9100
|
+
200: unknown;
|
|
9101
|
+
/**
|
|
9102
|
+
* accountPattern query param is empty
|
|
9103
|
+
*/
|
|
9104
|
+
400: unknown;
|
|
9105
|
+
/**
|
|
9106
|
+
* Life event not found
|
|
9107
|
+
*/
|
|
9108
|
+
404: unknown;
|
|
9109
|
+
};
|
|
9110
|
+
};
|
|
9111
|
+
};
|
|
9112
|
+
'/api/v1/{region}/bean/onboarding': {
|
|
9113
|
+
post: {
|
|
9114
|
+
req: OnboardingControllerBootstrapData;
|
|
9115
|
+
res: {
|
|
9116
|
+
/**
|
|
9117
|
+
* Onboarding bootstrap result.
|
|
9118
|
+
*/
|
|
9119
|
+
201: unknown;
|
|
9120
|
+
/**
|
|
9121
|
+
* Invalid region/account path/duplicate paths.
|
|
9122
|
+
*/
|
|
9123
|
+
422: unknown;
|
|
9124
|
+
};
|
|
9125
|
+
};
|
|
9126
|
+
};
|
|
9127
|
+
'/api/v1/{region}/bean/reconciliations': {
|
|
9128
|
+
post: {
|
|
9129
|
+
req: ReconciliationControllerComputeData;
|
|
9130
|
+
res: {
|
|
9131
|
+
/**
|
|
9132
|
+
* Reconciliation preview
|
|
7222
9133
|
*/
|
|
7223
|
-
200:
|
|
9134
|
+
200: ReconciliationComputeResultDto;
|
|
7224
9135
|
/**
|
|
7225
|
-
*
|
|
9136
|
+
* Account not found
|
|
7226
9137
|
*/
|
|
7227
|
-
|
|
9138
|
+
404: unknown;
|
|
9139
|
+
};
|
|
9140
|
+
};
|
|
9141
|
+
};
|
|
9142
|
+
'/api/v1/{region}/bean/reconciliations/assert': {
|
|
9143
|
+
post: {
|
|
9144
|
+
req: ReconciliationControllerAssertData;
|
|
9145
|
+
res: {
|
|
7228
9146
|
/**
|
|
7229
|
-
*
|
|
9147
|
+
* Balance assertion recorded
|
|
7230
9148
|
*/
|
|
7231
|
-
|
|
9149
|
+
201: ReconciliationRecordDto;
|
|
7232
9150
|
/**
|
|
7233
|
-
*
|
|
9151
|
+
* Account not found
|
|
7234
9152
|
*/
|
|
7235
9153
|
404: unknown;
|
|
7236
9154
|
};
|
|
7237
9155
|
};
|
|
7238
|
-
|
|
7239
|
-
|
|
9156
|
+
};
|
|
9157
|
+
'/api/v1/{region}/bean/reconciliations/pad': {
|
|
9158
|
+
post: {
|
|
9159
|
+
req: ReconciliationControllerPadData;
|
|
7240
9160
|
res: {
|
|
7241
9161
|
/**
|
|
7242
|
-
*
|
|
9162
|
+
* Pad adjusting entry generated
|
|
7243
9163
|
*/
|
|
7244
|
-
|
|
9164
|
+
201: PadResultDto;
|
|
7245
9165
|
/**
|
|
7246
|
-
*
|
|
9166
|
+
* Book already within tolerance — no pad needed
|
|
7247
9167
|
*/
|
|
7248
|
-
|
|
9168
|
+
400: unknown;
|
|
7249
9169
|
/**
|
|
7250
|
-
*
|
|
9170
|
+
* Account not found
|
|
7251
9171
|
*/
|
|
7252
|
-
|
|
9172
|
+
404: unknown;
|
|
7253
9173
|
};
|
|
7254
9174
|
};
|
|
7255
|
-
|
|
7256
|
-
|
|
9175
|
+
};
|
|
9176
|
+
'/api/v1/{region}/bean/accounts/{accountId}/reconciliations': {
|
|
9177
|
+
get: {
|
|
9178
|
+
req: ReconciliationControllerHistoryData;
|
|
7257
9179
|
res: {
|
|
7258
9180
|
/**
|
|
7259
|
-
*
|
|
7260
|
-
*/
|
|
7261
|
-
204: void;
|
|
7262
|
-
/**
|
|
7263
|
-
* Unauthorized
|
|
7264
|
-
*/
|
|
7265
|
-
401: unknown;
|
|
7266
|
-
/**
|
|
7267
|
-
* Forbidden - insufficient permissions
|
|
9181
|
+
* Reconciliation history
|
|
7268
9182
|
*/
|
|
7269
|
-
|
|
9183
|
+
200: Array<ReconciliationRecordDto>;
|
|
7270
9184
|
/**
|
|
7271
|
-
*
|
|
9185
|
+
* Account not found
|
|
7272
9186
|
*/
|
|
7273
9187
|
404: unknown;
|
|
7274
9188
|
};
|
|
@@ -7424,143 +9338,145 @@ export type $OpenApiTs = {
|
|
|
7424
9338
|
};
|
|
7425
9339
|
};
|
|
7426
9340
|
};
|
|
7427
|
-
'/api/v1/bean/
|
|
7428
|
-
|
|
9341
|
+
'/api/v1/{region}/bean/import/provider/{providerName}/sync': {
|
|
9342
|
+
post: {
|
|
9343
|
+
req: ProviderSyncControllerSyncData;
|
|
7429
9344
|
res: {
|
|
7430
9345
|
/**
|
|
7431
|
-
*
|
|
9346
|
+
* Sync completed successfully
|
|
7432
9347
|
*/
|
|
7433
|
-
200:
|
|
7434
|
-
};
|
|
7435
|
-
};
|
|
7436
|
-
post: {
|
|
7437
|
-
req: PlatformControllerCreateData;
|
|
7438
|
-
res: {
|
|
9348
|
+
200: ProviderSyncResponseDto;
|
|
7439
9349
|
/**
|
|
7440
|
-
*
|
|
9350
|
+
* Invalid request data
|
|
7441
9351
|
*/
|
|
7442
|
-
|
|
9352
|
+
400: unknown;
|
|
7443
9353
|
/**
|
|
7444
|
-
*
|
|
9354
|
+
* Missing or invalid authentication
|
|
7445
9355
|
*/
|
|
7446
|
-
|
|
9356
|
+
401: unknown;
|
|
9357
|
+
/**
|
|
9358
|
+
* Provider not supported
|
|
9359
|
+
*/
|
|
9360
|
+
404: unknown;
|
|
7447
9361
|
};
|
|
7448
9362
|
};
|
|
7449
9363
|
};
|
|
7450
|
-
'/api/v1/bean/
|
|
9364
|
+
'/api/v1/{region}/bean/import/provider/supported': {
|
|
7451
9365
|
get: {
|
|
9366
|
+
req: ProviderSyncControllerGetSupportedProvidersData;
|
|
7452
9367
|
res: {
|
|
7453
9368
|
/**
|
|
7454
|
-
* List of
|
|
9369
|
+
* List of supported providers
|
|
7455
9370
|
*/
|
|
7456
|
-
200:
|
|
9371
|
+
200: SupportedProvidersResponseDto;
|
|
9372
|
+
/**
|
|
9373
|
+
* Missing or invalid authentication
|
|
9374
|
+
*/
|
|
9375
|
+
401: unknown;
|
|
7457
9376
|
};
|
|
7458
9377
|
};
|
|
7459
9378
|
};
|
|
7460
|
-
'/api/v1/bean/
|
|
9379
|
+
'/api/v1/{region}/bean/import/provider/{providerName}/supported': {
|
|
7461
9380
|
get: {
|
|
7462
|
-
req:
|
|
9381
|
+
req: ProviderSyncControllerIsProviderSupportedData;
|
|
7463
9382
|
res: {
|
|
7464
9383
|
/**
|
|
7465
|
-
*
|
|
9384
|
+
* Provider support status
|
|
7466
9385
|
*/
|
|
7467
9386
|
200: unknown;
|
|
9387
|
+
/**
|
|
9388
|
+
* Missing or invalid authentication
|
|
9389
|
+
*/
|
|
9390
|
+
401: unknown;
|
|
7468
9391
|
};
|
|
7469
9392
|
};
|
|
7470
9393
|
};
|
|
7471
|
-
'/api/v1/bean/
|
|
7472
|
-
|
|
7473
|
-
req:
|
|
9394
|
+
'/api/v1/{region}/bean/external-account-links': {
|
|
9395
|
+
post: {
|
|
9396
|
+
req: ExternalAccountLinkControllerCreateData;
|
|
7474
9397
|
res: {
|
|
7475
9398
|
/**
|
|
7476
|
-
*
|
|
9399
|
+
* Link created.
|
|
7477
9400
|
*/
|
|
7478
|
-
|
|
9401
|
+
201: ExternalAccountLinkResponseDto;
|
|
7479
9402
|
/**
|
|
7480
|
-
*
|
|
9403
|
+
* beanAccountId not owned, or an active link already exists.
|
|
7481
9404
|
*/
|
|
7482
|
-
|
|
9405
|
+
422: unknown;
|
|
7483
9406
|
};
|
|
7484
9407
|
};
|
|
7485
|
-
|
|
7486
|
-
req:
|
|
9408
|
+
get: {
|
|
9409
|
+
req: ExternalAccountLinkControllerFindAllData;
|
|
7487
9410
|
res: {
|
|
7488
9411
|
/**
|
|
7489
|
-
*
|
|
7490
|
-
*/
|
|
7491
|
-
204: void;
|
|
7492
|
-
/**
|
|
7493
|
-
* Platform not found
|
|
9412
|
+
* Links retrieved.
|
|
7494
9413
|
*/
|
|
7495
|
-
|
|
9414
|
+
200: ExternalAccountLinkListResponseDto;
|
|
7496
9415
|
};
|
|
7497
9416
|
};
|
|
7498
9417
|
};
|
|
7499
|
-
'/api/v1/{region}/bean/
|
|
7500
|
-
|
|
7501
|
-
req:
|
|
9418
|
+
'/api/v1/{region}/bean/external-account-links/{id}': {
|
|
9419
|
+
get: {
|
|
9420
|
+
req: ExternalAccountLinkControllerFindOneData;
|
|
7502
9421
|
res: {
|
|
7503
9422
|
/**
|
|
7504
|
-
*
|
|
7505
|
-
*/
|
|
7506
|
-
200: ProviderSyncResponseDto;
|
|
7507
|
-
/**
|
|
7508
|
-
* Invalid request data
|
|
9423
|
+
* Link retrieved.
|
|
7509
9424
|
*/
|
|
7510
|
-
|
|
9425
|
+
200: ExternalAccountLinkResponseDto;
|
|
7511
9426
|
/**
|
|
7512
|
-
*
|
|
9427
|
+
* Link not found or not owned by the user.
|
|
7513
9428
|
*/
|
|
7514
|
-
|
|
9429
|
+
422: unknown;
|
|
9430
|
+
};
|
|
9431
|
+
};
|
|
9432
|
+
delete: {
|
|
9433
|
+
req: ExternalAccountLinkControllerRemoveData;
|
|
9434
|
+
res: {
|
|
7515
9435
|
/**
|
|
7516
|
-
*
|
|
9436
|
+
* Link soft-deleted; historical transactions are unaffected.
|
|
7517
9437
|
*/
|
|
7518
|
-
|
|
9438
|
+
204: void;
|
|
7519
9439
|
};
|
|
7520
9440
|
};
|
|
7521
9441
|
};
|
|
7522
|
-
'/api/v1/{region}/bean/import/
|
|
7523
|
-
|
|
7524
|
-
req:
|
|
9442
|
+
'/api/v1/{region}/bean/import/parser-telemetry': {
|
|
9443
|
+
post: {
|
|
9444
|
+
req: TelemetryControllerReportTelemetryData;
|
|
7525
9445
|
res: {
|
|
7526
9446
|
/**
|
|
7527
|
-
*
|
|
9447
|
+
* Telemetry report received
|
|
7528
9448
|
*/
|
|
7529
|
-
200:
|
|
9449
|
+
200: unknown;
|
|
7530
9450
|
/**
|
|
7531
|
-
*
|
|
9451
|
+
* Unauthorized
|
|
7532
9452
|
*/
|
|
7533
9453
|
401: unknown;
|
|
7534
9454
|
};
|
|
7535
9455
|
};
|
|
7536
9456
|
};
|
|
7537
|
-
'/api/v1/{region}/bean/import/
|
|
7538
|
-
|
|
7539
|
-
req:
|
|
9457
|
+
'/api/v1/{region}/bean/import/parser-coverage-miss': {
|
|
9458
|
+
post: {
|
|
9459
|
+
req: TelemetryControllerReportCoverageMissData;
|
|
7540
9460
|
res: {
|
|
7541
9461
|
/**
|
|
7542
|
-
*
|
|
9462
|
+
* Coverage miss report received
|
|
7543
9463
|
*/
|
|
7544
9464
|
200: unknown;
|
|
7545
9465
|
/**
|
|
7546
|
-
*
|
|
9466
|
+
* Unauthorized
|
|
7547
9467
|
*/
|
|
7548
9468
|
401: unknown;
|
|
7549
9469
|
};
|
|
7550
9470
|
};
|
|
7551
9471
|
};
|
|
7552
|
-
'/api/v1/{region}/bean/import/parser-
|
|
7553
|
-
|
|
7554
|
-
req:
|
|
9472
|
+
'/api/v1/{region}/bean/import/parser-coverage-metrics': {
|
|
9473
|
+
get: {
|
|
9474
|
+
req: TelemetryControllerGetCoverageMetricsData;
|
|
7555
9475
|
res: {
|
|
7556
9476
|
/**
|
|
7557
|
-
*
|
|
9477
|
+
* Coverage metrics
|
|
7558
9478
|
*/
|
|
7559
9479
|
200: unknown;
|
|
7560
|
-
/**
|
|
7561
|
-
* Unauthorized
|
|
7562
|
-
*/
|
|
7563
|
-
401: unknown;
|
|
7564
9480
|
};
|
|
7565
9481
|
};
|
|
7566
9482
|
};
|
|
@@ -7611,6 +9527,78 @@ export type $OpenApiTs = {
|
|
|
7611
9527
|
};
|
|
7612
9528
|
};
|
|
7613
9529
|
};
|
|
9530
|
+
'/api/v1/bean/platforms': {
|
|
9531
|
+
get: {
|
|
9532
|
+
res: {
|
|
9533
|
+
/**
|
|
9534
|
+
* List of platforms with binding and account counts
|
|
9535
|
+
*/
|
|
9536
|
+
200: unknown;
|
|
9537
|
+
};
|
|
9538
|
+
};
|
|
9539
|
+
post: {
|
|
9540
|
+
req: PlatformControllerCreateData;
|
|
9541
|
+
res: {
|
|
9542
|
+
/**
|
|
9543
|
+
* Platform created successfully
|
|
9544
|
+
*/
|
|
9545
|
+
201: unknown;
|
|
9546
|
+
/**
|
|
9547
|
+
* Platform already exists
|
|
9548
|
+
*/
|
|
9549
|
+
409: unknown;
|
|
9550
|
+
};
|
|
9551
|
+
};
|
|
9552
|
+
};
|
|
9553
|
+
'/api/v1/bean/platforms/list': {
|
|
9554
|
+
get: {
|
|
9555
|
+
res: {
|
|
9556
|
+
/**
|
|
9557
|
+
* List of platforms with user binding status
|
|
9558
|
+
*/
|
|
9559
|
+
200: Array<PlatformListItemDto>;
|
|
9560
|
+
};
|
|
9561
|
+
};
|
|
9562
|
+
};
|
|
9563
|
+
'/api/v1/bean/platforms/match': {
|
|
9564
|
+
get: {
|
|
9565
|
+
req: PlatformControllerMatchPlatformsData;
|
|
9566
|
+
res: {
|
|
9567
|
+
/**
|
|
9568
|
+
* Matching platforms with overall match type and truncation flag
|
|
9569
|
+
*/
|
|
9570
|
+
200: PlatformMatchResponseDto;
|
|
9571
|
+
};
|
|
9572
|
+
};
|
|
9573
|
+
};
|
|
9574
|
+
'/api/v1/bean/platforms/{id}': {
|
|
9575
|
+
put: {
|
|
9576
|
+
req: PlatformControllerUpdateData;
|
|
9577
|
+
res: {
|
|
9578
|
+
/**
|
|
9579
|
+
* Platform updated successfully
|
|
9580
|
+
*/
|
|
9581
|
+
200: unknown;
|
|
9582
|
+
/**
|
|
9583
|
+
* Platform not found
|
|
9584
|
+
*/
|
|
9585
|
+
404: unknown;
|
|
9586
|
+
};
|
|
9587
|
+
};
|
|
9588
|
+
delete: {
|
|
9589
|
+
req: PlatformControllerDeleteData;
|
|
9590
|
+
res: {
|
|
9591
|
+
/**
|
|
9592
|
+
* Platform deleted successfully
|
|
9593
|
+
*/
|
|
9594
|
+
204: void;
|
|
9595
|
+
/**
|
|
9596
|
+
* Platform not found
|
|
9597
|
+
*/
|
|
9598
|
+
404: unknown;
|
|
9599
|
+
};
|
|
9600
|
+
};
|
|
9601
|
+
};
|
|
7614
9602
|
'/api/v1/{region}/dashboard/net-worth': {
|
|
7615
9603
|
get: {
|
|
7616
9604
|
req: DashboardControllerGetNetWorthData;
|
|
@@ -7633,7 +9621,10 @@ export type $OpenApiTs = {
|
|
|
7633
9621
|
/**
|
|
7634
9622
|
* Accounts retrieved successfully. Response type depends on groupBy parameter.
|
|
7635
9623
|
*/
|
|
7636
|
-
200:
|
|
9624
|
+
200:
|
|
9625
|
+
| AccountsResponseDto
|
|
9626
|
+
| AssetClassAccountsResponseDto
|
|
9627
|
+
| HoldingAssetClassCrossAccountResponseDto;
|
|
7637
9628
|
/**
|
|
7638
9629
|
* User not authenticated
|
|
7639
9630
|
*/
|
|
@@ -7660,31 +9651,16 @@ export type $OpenApiTs = {
|
|
|
7660
9651
|
};
|
|
7661
9652
|
};
|
|
7662
9653
|
};
|
|
7663
|
-
'/api/v1/{region}/
|
|
9654
|
+
'/api/v1/{region}/dashboard/expenses': {
|
|
7664
9655
|
get: {
|
|
7665
|
-
req:
|
|
7666
|
-
res: {
|
|
7667
|
-
/**
|
|
7668
|
-
* Trends retrieved successfully
|
|
7669
|
-
*/
|
|
7670
|
-
200: PortfolioTrendsResponseDto;
|
|
7671
|
-
/**
|
|
7672
|
-
* User not authenticated
|
|
7673
|
-
*/
|
|
7674
|
-
401: unknown;
|
|
7675
|
-
};
|
|
7676
|
-
};
|
|
7677
|
-
};
|
|
7678
|
-
'/api/v1/{region}/reporting/snapshots/generate': {
|
|
7679
|
-
post: {
|
|
7680
|
-
req: ReportingControllerGenerateSnapshotData;
|
|
9656
|
+
req: DashboardControllerGetExpensesData;
|
|
7681
9657
|
res: {
|
|
7682
9658
|
/**
|
|
7683
|
-
*
|
|
9659
|
+
* Expenses retrieved successfully
|
|
7684
9660
|
*/
|
|
7685
|
-
200:
|
|
9661
|
+
200: ExpensesByCategoryResponseDto;
|
|
7686
9662
|
/**
|
|
7687
|
-
* Invalid
|
|
9663
|
+
* Invalid groupBy or period
|
|
7688
9664
|
*/
|
|
7689
9665
|
400: unknown;
|
|
7690
9666
|
/**
|
|
@@ -7694,26 +9670,22 @@ export type $OpenApiTs = {
|
|
|
7694
9670
|
};
|
|
7695
9671
|
};
|
|
7696
9672
|
};
|
|
7697
|
-
'/api/v1/{region}/
|
|
7698
|
-
|
|
7699
|
-
req:
|
|
9673
|
+
'/api/v1/{region}/investment/holdings/pnl': {
|
|
9674
|
+
get: {
|
|
9675
|
+
req: HoldingPnlControllerGetHoldingPnlData;
|
|
7700
9676
|
res: {
|
|
7701
9677
|
/**
|
|
7702
|
-
*
|
|
9678
|
+
* Holding P&L retrieved successfully
|
|
7703
9679
|
*/
|
|
7704
|
-
200:
|
|
9680
|
+
200: HoldingPnlResponseDto;
|
|
7705
9681
|
/**
|
|
7706
|
-
* Invalid date format or
|
|
9682
|
+
* Invalid asOf format/value/future date, invalid accountId format, or unsupported method
|
|
7707
9683
|
*/
|
|
7708
9684
|
400: unknown;
|
|
7709
9685
|
/**
|
|
7710
9686
|
* User not authenticated
|
|
7711
9687
|
*/
|
|
7712
9688
|
401: unknown;
|
|
7713
|
-
/**
|
|
7714
|
-
* Backfill already in progress for this user
|
|
7715
|
-
*/
|
|
7716
|
-
409: unknown;
|
|
7717
9689
|
};
|
|
7718
9690
|
};
|
|
7719
9691
|
};
|
|
@@ -7738,7 +9710,7 @@ export type $OpenApiTs = {
|
|
|
7738
9710
|
/**
|
|
7739
9711
|
* Login successful
|
|
7740
9712
|
*/
|
|
7741
|
-
200:
|
|
9713
|
+
200: AnonymousLoginResponseDto;
|
|
7742
9714
|
/**
|
|
7743
9715
|
* Invalid access token
|
|
7744
9716
|
*/
|