@firela/api-types 0.0.0-canary.13637060 → 0.0.0-canary.13e64482

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 CHANGED
@@ -27,13 +27,9 @@ type CreateAccountDto = {
27
27
  */
28
28
  path: string;
29
29
  /**
30
- * Display name to distinguish accounts at the same path (default: "")
30
+ * Account open date (server defaults to today)
31
31
  */
32
- displayName?: string;
33
- /**
34
- * Account open date
35
- */
36
- openDate: string;
32
+ openDate?: string;
37
33
  /**
38
34
  * Allowed currencies (null = no restriction)
39
35
  */
@@ -50,18 +46,14 @@ type CreateAccountDto = {
50
46
  * Whether this is a custom (user-created) account
51
47
  */
52
48
  isCustom?: boolean;
53
- /**
54
- * i18n key for display name (overrides template)
55
- */
56
- i18nKey?: string;
57
49
  /**
58
50
  * Icon identifier (overrides template)
59
51
  */
60
52
  icon?: string;
61
53
  /**
62
- * Additional metadata
54
+ * Open directive metadata (NOT an opening-balance amount — use the opening-balance endpoint)
63
55
  */
64
- openMeta?: {
56
+ openDirectiveMeta?: {
65
57
  [key: string]: unknown;
66
58
  };
67
59
  /**
@@ -82,10 +74,6 @@ type AccountResponseDto = {
82
74
  * Account path (hierarchical, colon-separated)
83
75
  */
84
76
  path: string;
85
- /**
86
- * Display name distinguishing multiple accounts at the same path
87
- */
88
- displayName: string;
89
77
  /**
90
78
  * Account type (root segment)
91
79
  */
@@ -119,17 +107,17 @@ type AccountResponseDto = {
119
107
  */
120
108
  isCustom: boolean;
121
109
  /**
122
- * i18n key for display name
110
+ * Localized display name (ADR-0114, read-time projection)
123
111
  */
124
- i18nKey?: string;
112
+ displayName?: string;
125
113
  /**
126
114
  * Icon identifier
127
115
  */
128
116
  icon?: string;
129
117
  /**
130
- * Account metadata
118
+ * Open directive metadata (ADR-0115 Decision 9)
131
119
  */
132
- openMeta?: {
120
+ openDirectiveMeta?: {
133
121
  [key: string]: unknown;
134
122
  };
135
123
  /**
@@ -172,10 +160,6 @@ type AccountListResponseDto = {
172
160
  total: number;
173
161
  };
174
162
  type UpdateAccountDto = {
175
- /**
176
- * Display name to distinguish accounts at the same path
177
- */
178
- displayName?: string;
179
163
  /**
180
164
  * Allowed currencies (null = no restriction)
181
165
  */
@@ -184,18 +168,14 @@ type UpdateAccountDto = {
184
168
  * Booking method for cost basis
185
169
  */
186
170
  bookingMethod?: 'FIFO' | 'LIFO' | 'HIFO' | 'AVERAGE' | 'STRICT' | 'STRICT_WITH_SIZE' | 'NONE';
187
- /**
188
- * i18n key for display name
189
- */
190
- i18nKey?: string;
191
171
  /**
192
172
  * Icon identifier
193
173
  */
194
174
  icon?: string;
195
175
  /**
196
- * Additional metadata (merged with existing)
176
+ * Open directive metadata (merged with existing; NOT an opening-balance amount)
197
177
  */
198
- openMeta?: {
178
+ openDirectiveMeta?: {
199
179
  [key: string]: unknown;
200
180
  };
201
181
  /**
@@ -221,6 +201,26 @@ type ReopenAccountDto = {
221
201
  */
222
202
  reopenDate?: string;
223
203
  };
204
+ type CreateOpeningBalanceDto = {
205
+ /**
206
+ * Opening balance amount (non-negative)
207
+ */
208
+ amount: number;
209
+ /**
210
+ * Currency code
211
+ */
212
+ currency: string;
213
+ /**
214
+ * Opening-balance date (defaults to now)
215
+ */
216
+ date?: string;
217
+ };
218
+ type OpeningBalanceResultDto = {
219
+ /**
220
+ * Created opening-balance transaction id.
221
+ */
222
+ transactionId: string;
223
+ };
224
224
  type AccountStandardResponseDto = {
225
225
  /**
226
226
  * Account path (hierarchical, colon-separated)
@@ -230,10 +230,6 @@ type AccountStandardResponseDto = {
230
230
  * Account type in Beancount hierarchy
231
231
  */
232
232
  type: 'Assets' | 'Liabilities' | 'Income' | 'Expenses' | 'Equity';
233
- /**
234
- * i18n key for localized display name
235
- */
236
- i18nKey: string;
237
233
  /**
238
234
  * Short localized display name
239
235
  */
@@ -266,10 +262,6 @@ type AccountStandardListResponseDto = {
266
262
  region: string;
267
263
  };
268
264
  type TemplateMetadataDto = {
269
- /**
270
- * Whether this path can be extended
271
- */
272
- extendable: boolean;
273
265
  /**
274
266
  * Root account type
275
267
  */
@@ -293,6 +285,50 @@ type RegionInfoDto = {
293
285
  type RegionsMetadataResponseDto = {
294
286
  regions: Array<RegionInfoDto>;
295
287
  };
288
+ type CostSpecDto = {
289
+ /**
290
+ * Cost specification mode (mirrors engine CostSpec)
291
+ */
292
+ mode: 'per-unit' | 'total' | 'date' | 'label' | 'auto';
293
+ /**
294
+ * Per-unit cost (required when mode is "per-unit")
295
+ */
296
+ numberPerUnit?: string;
297
+ /**
298
+ * Total cost for all units (required when mode is "total")
299
+ */
300
+ totalNumber?: string;
301
+ /**
302
+ * Cost currency (required in all modes)
303
+ */
304
+ currency: string;
305
+ /**
306
+ * Lot acquisition date, ISO 8601 (required when mode is "date")
307
+ */
308
+ date?: string;
309
+ /**
310
+ * Lot label (required when mode is "label"; optional tag in buy modes)
311
+ */
312
+ label?: string;
313
+ /**
314
+ * Merge lots for AVERAGE booking (mode: auto)
315
+ */
316
+ merge?: boolean;
317
+ };
318
+ /**
319
+ * Cost specification mode (mirrors engine CostSpec)
320
+ */
321
+ type mode = 'per-unit' | 'total' | 'date' | 'label' | 'auto';
322
+ type AmountDto = {
323
+ /**
324
+ * Amount as decimal string (max 15 integer + 15 decimal digits)
325
+ */
326
+ number: string;
327
+ /**
328
+ * Currency/commodity code
329
+ */
330
+ currency: string;
331
+ };
296
332
  type CreatePostingDto = {
297
333
  /**
298
334
  * Account name in Beancount format (must start with uppercase, colon-separated)
@@ -312,6 +348,14 @@ type CreatePostingDto = {
312
348
  meta?: {
313
349
  [key: string]: unknown;
314
350
  };
351
+ /**
352
+ * Cost basis (Beancount `{...}`). Maps to engine costSpec. Required for commodity holdings so they carry a monetary weight that can balance.
353
+ */
354
+ cost?: CostSpecDto;
355
+ /**
356
+ * Price annotation (Beancount `@...`). Maps to engine price. Used for valuation; cost takes priority for balance weight.
357
+ */
358
+ price?: AmountDto;
315
359
  };
316
360
  type CreateTransactionDto = {
317
361
  /**
@@ -361,6 +405,24 @@ type CreateTransactionDto = {
361
405
  * Transaction flag: * (cleared), ! (pending)
362
406
  */
363
407
  type flag = '*' | '!';
408
+ type CostDetailDto = {
409
+ /**
410
+ * Per-unit cost basis (mirrors engine Cost.number)
411
+ */
412
+ number?: string;
413
+ /**
414
+ * Cost currency
415
+ */
416
+ currency?: string;
417
+ /**
418
+ * Lot acquisition date (ISO yyyy-mm-dd)
419
+ */
420
+ date?: string;
421
+ /**
422
+ * Lot label
423
+ */
424
+ label?: string;
425
+ };
364
426
  type PostingResponseDto = {
365
427
  /**
366
428
  * Account name
@@ -374,6 +436,10 @@ type PostingResponseDto = {
374
436
  * Currency
375
437
  */
376
438
  currency?: string;
439
+ /**
440
+ * Booking-resolved cost (mirrors engine Cost). Undefined when the posting has no cost basis.
441
+ */
442
+ cost?: CostDetailDto;
377
443
  };
378
444
  type RecurringSuggestionDto = {
379
445
  /**
@@ -513,6 +579,54 @@ type BatchTransactionResponseDto = {
513
579
  */
514
580
  failed: Array<BatchTransactionErrorDto>;
515
581
  };
582
+ type CorrectTransactionDto = {
583
+ /**
584
+ * Transaction date (ISO 8601 format)
585
+ */
586
+ date: string;
587
+ /**
588
+ * Transaction flag: * (cleared), ! (pending)
589
+ */
590
+ flag?: '*' | '!';
591
+ /**
592
+ * Payee name
593
+ */
594
+ payee?: string;
595
+ /**
596
+ * Transaction narration/description
597
+ */
598
+ narration: string;
599
+ /**
600
+ * Transaction tags (without # prefix)
601
+ */
602
+ tags?: Array<string>;
603
+ /**
604
+ * Transaction links (without ^ prefix)
605
+ */
606
+ links?: Array<string>;
607
+ /**
608
+ * Transaction postings (minimum 1, typically 2 for double-entry)
609
+ */
610
+ postings: Array<CreatePostingDto>;
611
+ /**
612
+ * Transaction-level metadata
613
+ */
614
+ meta?: {
615
+ [key: string]: unknown;
616
+ };
617
+ /**
618
+ * Unique key for idempotent transaction creation. If provided, duplicate requests with the same key will return the existing transaction.
619
+ */
620
+ idempotencyKey?: string;
621
+ /**
622
+ * 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.
623
+ */
624
+ autoCreateAccounts?: boolean;
625
+ /**
626
+ * Reason for correcting/superseding the original transaction
627
+ */
628
+ correctionReason?: string;
629
+ };
516
630
  type PostingDetailDto = {
517
631
  /**
518
632
  * Posting ID
@@ -523,9 +637,9 @@ type PostingDetailDto = {
523
637
  */
524
638
  accountId: string;
525
639
  /**
526
- * Account name
640
+ * Fully-qualified Beancount account path
527
641
  */
528
- accountName: string;
642
+ account: string;
529
643
  /**
530
644
  * Amount as decimal string. Typed optional but always present in responses: interpolation fills any MISSING posting before it is persisted or returned.
531
645
  */
@@ -546,6 +660,10 @@ type PostingDetailDto = {
546
660
  * Cost date
547
661
  */
548
662
  costDate?: string;
663
+ /**
664
+ * Booking-resolved cost (mirrors engine Cost). Undefined when the posting has no cost basis.
665
+ */
666
+ cost?: CostDetailDto;
549
667
  /**
550
668
  * Price amount
551
669
  */
@@ -609,9 +727,9 @@ type TransactionDetailDto = {
609
727
  */
610
728
  status: 'ACTIVE' | 'VOIDED' | 'SUPERSEDED';
611
729
  /**
612
- * Source type (how the transaction was created)
730
+ * Source type (free-form string from transaction metadata, e.g. import, api)
613
731
  */
614
- sourceType?: 'NLP' | 'CSV' | 'OCR' | 'API';
732
+ sourceType?: string;
615
733
  /**
616
734
  * Source platform (e.g., alipay, wechat)
617
735
  */
@@ -636,6 +754,14 @@ type TransactionDetailDto = {
636
754
  * Correction reason (if voided or superseded)
637
755
  */
638
756
  correctionReason?: string;
757
+ /**
758
+ * ID of the transaction that supersedes this one (set when status=SUPERSEDED)
759
+ */
760
+ supersededBy?: string;
761
+ /**
762
+ * ID of the transaction this one corrected/replaced (back-link on the replacement)
763
+ */
764
+ originalTxn?: string;
639
765
  };
640
766
  /**
641
767
  * Transaction flag
@@ -645,10 +771,48 @@ type flag2 = 'CLEARED' | 'PENDING' | 'PADDING' | 'SUMMARIZE' | 'TRANSFER' | 'CON
645
771
  * Transaction status
646
772
  */
647
773
  type status2 = 'ACTIVE' | 'VOIDED' | 'SUPERSEDED';
648
- /**
649
- * Source type (how the transaction was created)
650
- */
651
- type sourceType = 'NLP' | 'CSV' | 'OCR' | 'API';
774
+ type BalanceByCurrencyDto = {
775
+ /**
776
+ * ISO 4217 currency code
777
+ */
778
+ currency: string;
779
+ /**
780
+ * Balance amount
781
+ */
782
+ balance: string;
783
+ };
784
+ type ExchangeRateWarningDto = {
785
+ /**
786
+ * Warning type
787
+ */
788
+ type: string;
789
+ /**
790
+ * Currency without exchange rate
791
+ */
792
+ currency: string;
793
+ /**
794
+ * Total amount affected
795
+ */
796
+ totalAmount: string;
797
+ };
798
+ type TransactionListSummaryDto = {
799
+ /**
800
+ * 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.
801
+ */
802
+ totalAmount: string;
803
+ /**
804
+ * Base currency (ISO 4217)
805
+ */
806
+ currency: string;
807
+ /**
808
+ * Raw (unconverted) balance per currency
809
+ */
810
+ balanceByCurrency: Array<BalanceByCurrencyDto>;
811
+ /**
812
+ * Currencies missing an FX rate (omitted when empty)
813
+ */
814
+ warnings?: Array<ExchangeRateWarningDto>;
815
+ };
652
816
  type TransactionListResponseDto = {
653
817
  /**
654
818
  * List of transactions
@@ -666,6 +830,10 @@ type TransactionListResponseDto = {
666
830
  * Number of items skipped
667
831
  */
668
832
  offset: number;
833
+ /**
834
+ * 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.
835
+ */
836
+ summary?: TransactionListSummaryDto;
669
837
  };
670
838
  type TagSuggestionDto = {
671
839
  /**
@@ -775,9 +943,9 @@ type TransactionSummaryDto = {
775
943
  */
776
944
  accountName?: string;
777
945
  /**
778
- * Source type (NLP, CSV, OCR, API)
946
+ * Source type (free-form string from transaction metadata, e.g. import, api)
779
947
  */
780
- sourceType?: 'NLP' | 'CSV' | 'OCR' | 'API';
948
+ sourceType?: string;
781
949
  /**
782
950
  * Source platform (e.g., alipay, wechat)
783
951
  */
@@ -819,7 +987,7 @@ type ReviewSummaryDto = {
819
987
  */
820
988
  matchReasons: Array<string>;
821
989
  /**
822
- * Source type (NLP, CSV, OCR, API)
990
+ * Source type (free-form string from transaction metadata, e.g. import, api)
823
991
  */
824
992
  sourceType: string;
825
993
  /**
@@ -906,7 +1074,7 @@ type DecisionOptionDto = {
906
1074
  /**
907
1075
  * The action value to submit (e.g., UPGRADE_REPLACE, ACCEPT)
908
1076
  */
909
- value: string;
1077
+ value: 'UPGRADE_REPLACE' | 'LINK_KEEP_BOTH' | 'IGNORE_NEW' | 'CONFIRM_DIFFERENT' | 'ACCEPT' | 'REJECT' | 'ACCEPT_AND_LEARN' | 'CHOOSE_OTHER' | 'CANCEL' | 'FIX' | 'IGNORE';
910
1078
  /**
911
1079
  * i18n message key for display label (e.g., review.payee.accept.label)
912
1080
  */
@@ -920,6 +1088,10 @@ type DecisionOptionDto = {
920
1088
  */
921
1089
  recommended?: boolean;
922
1090
  };
1091
+ /**
1092
+ * The action value to submit (e.g., UPGRADE_REPLACE, ACCEPT)
1093
+ */
1094
+ type value = 'UPGRADE_REPLACE' | 'LINK_KEEP_BOTH' | 'IGNORE_NEW' | 'CONFIRM_DIFFERENT' | 'ACCEPT' | 'REJECT' | 'ACCEPT_AND_LEARN' | 'CHOOSE_OTHER' | 'CANCEL' | 'FIX' | 'IGNORE';
923
1095
  type ReviewDetailDto = {
924
1096
  /**
925
1097
  * Review item ID
@@ -956,7 +1128,7 @@ type ReviewDetailDto = {
956
1128
  */
957
1129
  matchReasons: Array<string>;
958
1130
  /**
959
- * Source type (NLP, CSV, OCR, API)
1131
+ * Source type (free-form string from transaction metadata, e.g. import, api)
960
1132
  */
961
1133
  sourceType: string;
962
1134
  /**
@@ -1008,9 +1180,9 @@ type ReviewDetailDto = {
1008
1180
  };
1009
1181
  type ResolveReviewDto = {
1010
1182
  /**
1011
- * Decision action. Available actions vary by review type: DUPLICATE: UPGRADE_REPLACE, KEEP_EXISTING, KEEP_BOTH | PAYEE_MATCH: ACCEPT, REJECT, ACCEPT_AND_LEARN | ACCOUNT_VALIDATION: FIX, REJECT | RULE_MATCH: ACCEPT, REJECT, ACCEPT_AND_LEARN
1183
+ * Decision action. Valid actions vary by review type — see DecisionOptionDto.value returned by the review detail endpoint.
1012
1184
  */
1013
- action: string;
1185
+ action: 'UPGRADE_REPLACE' | 'LINK_KEEP_BOTH' | 'IGNORE_NEW' | 'CONFIRM_DIFFERENT' | 'ACCEPT' | 'REJECT' | 'ACCEPT_AND_LEARN' | 'CHOOSE_OTHER' | 'CANCEL' | 'FIX' | 'IGNORE';
1014
1186
  /**
1015
1187
  * Additional data for the decision (e.g., selected account ID)
1016
1188
  */
@@ -1018,6 +1190,10 @@ type ResolveReviewDto = {
1018
1190
  [key: string]: unknown;
1019
1191
  };
1020
1192
  };
1193
+ /**
1194
+ * Decision action. Valid actions vary by review type — see DecisionOptionDto.value returned by the review detail endpoint.
1195
+ */
1196
+ type action = 'UPGRADE_REPLACE' | 'LINK_KEEP_BOTH' | 'IGNORE_NEW' | 'CONFIRM_DIFFERENT' | 'ACCEPT' | 'REJECT' | 'ACCEPT_AND_LEARN' | 'CHOOSE_OTHER' | 'CANCEL' | 'FIX' | 'IGNORE';
1021
1197
  type ResolveResultDto = {
1022
1198
  /**
1023
1199
  * Whether resolution was successful
@@ -1034,17 +1210,17 @@ type ResolveResultDto = {
1034
1210
  [key: string]: string;
1035
1211
  };
1036
1212
  /**
1037
- * Resolution ID for undo
1213
+ * Resolution ID for undo. Absent when the resolver rejected the decision (review stayed PENDING).
1038
1214
  */
1039
- resolutionId: string;
1215
+ resolutionId?: string;
1040
1216
  /**
1041
1217
  * Whether this decision can be undone
1042
1218
  */
1043
- canUndo: boolean;
1219
+ canUndo?: boolean;
1044
1220
  /**
1045
1221
  * Deadline for undo (24h from resolution)
1046
1222
  */
1047
- undoDeadline: string;
1223
+ undoDeadline?: string;
1048
1224
  /**
1049
1225
  * Rule ID if learning was triggered (ACCEPT_AND_LEARN actions). Use this to deep-link to the rule management page.
1050
1226
  */
@@ -1072,7 +1248,7 @@ type BatchResolveDto = {
1072
1248
  /**
1073
1249
  * Decision action to apply to all items
1074
1250
  */
1075
- action: string;
1251
+ action: 'UPGRADE_REPLACE' | 'LINK_KEEP_BOTH' | 'IGNORE_NEW' | 'CONFIRM_DIFFERENT' | 'ACCEPT' | 'REJECT' | 'ACCEPT_AND_LEARN' | 'CHOOSE_OTHER' | 'CANCEL' | 'FIX' | 'IGNORE';
1076
1252
  /**
1077
1253
  * Additional data for the decision
1078
1254
  */
@@ -1504,6 +1680,104 @@ type UpdateCommodityDto = {
1504
1680
  [key: string]: unknown;
1505
1681
  };
1506
1682
  };
1683
+ type CreateBeanPriceDto = {
1684
+ /**
1685
+ * Currency being priced (e.g., USD, AAPL, BTC)
1686
+ */
1687
+ currency: string;
1688
+ /**
1689
+ * Quote currency (pricing currency, e.g., CNY, EUR)
1690
+ */
1691
+ quoteCurrency: string;
1692
+ /**
1693
+ * Price amount (MUST be >= 0 per Beancount spec, supports up to 15 decimal places). Zero allowed for conversion entries, negative strictly prohibited.
1694
+ */
1695
+ amount: number;
1696
+ /**
1697
+ * Price date (ISO 8601 format)
1698
+ */
1699
+ date: string;
1700
+ /**
1701
+ * Metadata (validated by Zod schema, max field lengths enforced)
1702
+ */
1703
+ metadata?: {
1704
+ [key: string]: unknown;
1705
+ };
1706
+ };
1707
+ type PriceResponseDto = {
1708
+ /**
1709
+ * Unique identifier
1710
+ */
1711
+ id: string;
1712
+ /**
1713
+ * User ID (owner of the price)
1714
+ */
1715
+ userId: string;
1716
+ /**
1717
+ * Currency being priced (e.g., USD, AAPL, BTC)
1718
+ */
1719
+ currency: string;
1720
+ /**
1721
+ * Quote currency (pricing currency, e.g., USD, CNY)
1722
+ */
1723
+ quoteCurrency: string;
1724
+ /**
1725
+ * Price amount (corresponds to Beancount Amount.number). Supports up to 15 decimal places.
1726
+ */
1727
+ amount: number;
1728
+ /**
1729
+ * Price date (ISO 8601 format). Represents the date this price was valid.
1730
+ */
1731
+ date: string;
1732
+ /**
1733
+ * Metadata (corresponds to Beancount meta field). Contains source, confidence, note, etc.
1734
+ */
1735
+ meta: {
1736
+ [key: string]: unknown;
1737
+ };
1738
+ /**
1739
+ * Creation timestamp
1740
+ */
1741
+ createdAt: string;
1742
+ /**
1743
+ * Last update timestamp
1744
+ */
1745
+ updatedAt: string;
1746
+ };
1747
+ type PriceListResponseDto = {
1748
+ /**
1749
+ * List of prices
1750
+ */
1751
+ items: Array<PriceResponseDto>;
1752
+ /**
1753
+ * Total number of prices
1754
+ */
1755
+ total: number;
1756
+ };
1757
+ type UpdateBeanPriceDto = {
1758
+ /**
1759
+ * Currency being priced
1760
+ */
1761
+ currency?: string;
1762
+ /**
1763
+ * Quote currency (pricing currency)
1764
+ */
1765
+ quoteCurrency?: string;
1766
+ /**
1767
+ * Price amount (MUST be >= 0 per Beancount spec)
1768
+ */
1769
+ amount?: number;
1770
+ /**
1771
+ * Price date (ISO 8601 format)
1772
+ */
1773
+ date?: string;
1774
+ /**
1775
+ * Metadata
1776
+ */
1777
+ metadata?: {
1778
+ [key: string]: unknown;
1779
+ };
1780
+ };
1507
1781
  type CreateRecurringRuleDto = {
1508
1782
  /**
1509
1783
  * Rule name (unique per user)
@@ -2551,9 +2825,239 @@ type UpdatePropertyDto = {
2551
2825
  */
2552
2826
  value: string;
2553
2827
  };
2554
- type FileImportDto = {
2828
+ type CreateBeanEventDto = {
2555
2829
  /**
2556
- * Bill file to import (CSV, PDF, OFX, etc.)
2830
+ * Life event date (ISO 8601)
2831
+ */
2832
+ date: string;
2833
+ /**
2834
+ * Life event type (e.g., "employer", "location", "marital-status") — user-defined, no enum constraint at engine layer
2835
+ */
2836
+ type: string;
2837
+ /**
2838
+ * Life event description. Empty string is a VALID value (distinct from absence).
2839
+ */
2840
+ description: string;
2841
+ /**
2842
+ * Product-side metadata (lives in BeanEvent.meta JSON, never in engine Event fields)
2843
+ */
2844
+ meta?: {
2845
+ [key: string]: unknown;
2846
+ };
2847
+ };
2848
+ type EventResponseDto = {
2849
+ /**
2850
+ * Unique identifier
2851
+ */
2852
+ id: string;
2853
+ /**
2854
+ * User ID (owner of the life event)
2855
+ */
2856
+ userId: string;
2857
+ /**
2858
+ * Life event date (ISO 8601 format)
2859
+ */
2860
+ date: string;
2861
+ /**
2862
+ * Life event type (user-defined, e.g., "employer", "location")
2863
+ */
2864
+ type: string;
2865
+ /**
2866
+ * Life event description. May be an empty string (a valid value distinct from absence).
2867
+ */
2868
+ description: string;
2869
+ /**
2870
+ * Product-side metadata (free-form JSON)
2871
+ */
2872
+ meta: {
2873
+ [key: string]: unknown;
2874
+ };
2875
+ /**
2876
+ * Creation timestamp
2877
+ */
2878
+ createdAt: string;
2879
+ /**
2880
+ * Last update timestamp. Also emitted as the ETag response header for If-Match optimistic concurrency.
2881
+ */
2882
+ updatedAt: string;
2883
+ };
2884
+ type EventListResponseDto = {
2885
+ /**
2886
+ * List of life events
2887
+ */
2888
+ items: Array<EventResponseDto>;
2889
+ /**
2890
+ * Total number of life events matching the query
2891
+ */
2892
+ total: number;
2893
+ };
2894
+ type UpdateBeanEventDto = {
2895
+ /**
2896
+ * Life event date (ISO 8601)
2897
+ */
2898
+ date?: string;
2899
+ /**
2900
+ * Life event type (user-defined)
2901
+ */
2902
+ type?: string;
2903
+ /**
2904
+ * Life event description. Empty string is a VALID value (distinct from absence).
2905
+ */
2906
+ description?: string;
2907
+ /**
2908
+ * Product-side metadata (free-form JSON)
2909
+ */
2910
+ meta?: {
2911
+ [key: string]: unknown;
2912
+ };
2913
+ };
2914
+ type OnboardingAccountDto = {
2915
+ /**
2916
+ * Account path (Assets/Liabilities only; format validated by the account service)
2917
+ */
2918
+ path: string;
2919
+ /**
2920
+ * ISO 4217 currency code (3 letters)
2921
+ */
2922
+ currency: string;
2923
+ /**
2924
+ * Opening balance as a non-negative Decimal string (e.g. "1000.00")
2925
+ */
2926
+ openingBalance?: string;
2927
+ /**
2928
+ * Platform ID to bind the account to (references Platform.id); omit for unbound
2929
+ */
2930
+ platformId?: string;
2931
+ };
2932
+ type OnboardingDto = {
2933
+ /**
2934
+ * Asset/Liability accounts to register with opening balances
2935
+ */
2936
+ accounts?: Array<OnboardingAccountDto>;
2937
+ /**
2938
+ * Skip asset registration; only bootstrap the core account set
2939
+ */
2940
+ skipAssetRegistration?: boolean;
2941
+ };
2942
+ type ActualBalanceDto = {
2943
+ /**
2944
+ * Actual balance amount as a decimal string (preserves precision for tolerance inference).
2945
+ */
2946
+ amount: string;
2947
+ /**
2948
+ * Currency code (ISO 4217 or commodity ticker).
2949
+ */
2950
+ ccy: string;
2951
+ };
2952
+ type ComputeReconciliationDto = {
2953
+ /**
2954
+ * BeanAccount id to reconcile.
2955
+ */
2956
+ accountId: string;
2957
+ /**
2958
+ * Assertion date (ISO 8601, e.g. "2026-07-24").
2959
+ */
2960
+ asOfDate: string;
2961
+ /**
2962
+ * Actual balance from the external statement.
2963
+ */
2964
+ actualBalance: ActualBalanceDto;
2965
+ };
2966
+ type ReconciliationComputeResultDto = {
2967
+ accountId: string;
2968
+ asOfDate: string;
2969
+ /**
2970
+ * System-computed book balance (decimal string).
2971
+ */
2972
+ bookBalance: string;
2973
+ /**
2974
+ * User-entered actual balance (decimal string).
2975
+ */
2976
+ actualBalance: string;
2977
+ currency: string;
2978
+ /**
2979
+ * Diff = book − actual (decimal string).
2980
+ */
2981
+ diff: string;
2982
+ /**
2983
+ * Applied tolerance (decimal string).
2984
+ */
2985
+ tolerance: string;
2986
+ /**
2987
+ * true when |diff| ≤ tolerance.
2988
+ */
2989
+ withinTolerance: boolean;
2990
+ /**
2991
+ * Suggested next action: assert when within tolerance, pad otherwise.
2992
+ */
2993
+ suggestedAction: 'assert' | 'pad';
2994
+ };
2995
+ /**
2996
+ * Suggested next action: assert when within tolerance, pad otherwise.
2997
+ */
2998
+ type suggestedAction = 'assert' | 'pad';
2999
+ type AssertReconciliationDto = {
3000
+ /**
3001
+ * BeanAccount id to reconcile.
3002
+ */
3003
+ accountId: string;
3004
+ /**
3005
+ * Assertion date (ISO 8601, e.g. "2026-07-24").
3006
+ */
3007
+ asOfDate: string;
3008
+ /**
3009
+ * Actual balance from the external statement.
3010
+ */
3011
+ actualBalance: ActualBalanceDto;
3012
+ /**
3013
+ * Optional explicit tolerance override. Omit to infer from amount precision (Beancount default).
3014
+ */
3015
+ tolerance?: string;
3016
+ };
3017
+ type ReconciliationRecordDto = {
3018
+ id: string;
3019
+ accountId: string;
3020
+ date: string;
3021
+ /**
3022
+ * Asserted (actual) amount.
3023
+ */
3024
+ amount: string;
3025
+ currency: string;
3026
+ tolerance?: string;
3027
+ /**
3028
+ * book − actual.
3029
+ */
3030
+ diffAmount?: string;
3031
+ diffCurrency?: string;
3032
+ createdAt: string;
3033
+ };
3034
+ type PadReconciliationDto = {
3035
+ /**
3036
+ * BeanAccount id to reconcile.
3037
+ */
3038
+ accountId: string;
3039
+ /**
3040
+ * Assertion date (ISO 8601, e.g. "2026-07-24").
3041
+ */
3042
+ asOfDate: string;
3043
+ /**
3044
+ * Actual balance from the external statement.
3045
+ */
3046
+ actualBalance: ActualBalanceDto;
3047
+ /**
3048
+ * Pad source account. Defaults to Equity:Opening-Balances (official Beancount convention).
3049
+ */
3050
+ sourceAccount?: string;
3051
+ };
3052
+ type PadResultDto = {
3053
+ /**
3054
+ * Created pad adjusting transaction id.
3055
+ */
3056
+ transactionId: string;
3057
+ };
3058
+ type FileImportDto = {
3059
+ /**
3060
+ * Bill file to import (CSV, PDF, OFX, etc.)
2557
3061
  */
2558
3062
  file: Blob | File;
2559
3063
  };
@@ -2795,70 +3299,6 @@ type UpdateImporterConfigDto = {
2795
3299
  */
2796
3300
  data?: UpdateConfigDataDto;
2797
3301
  };
2798
- type CreatePlatformDto = {
2799
- /**
2800
- * Platform name
2801
- */
2802
- name: string;
2803
- /**
2804
- * Platform canonical identifier (lowercase, kebab-case)
2805
- */
2806
- canonical: string;
2807
- /**
2808
- * Platform aliases (multi-language names for lookup)
2809
- */
2810
- aliases: Array<string>;
2811
- /**
2812
- * Platform URL
2813
- */
2814
- url: string;
2815
- /**
2816
- * Platform type
2817
- */
2818
- type: 'BANK' | 'BROKERAGE' | 'CRYPTO_EXCHANGE' | 'PAYMENT' | 'INVESTMENT' | 'INSURANCE' | 'OTHER';
2819
- /**
2820
- * Platform logo URL
2821
- */
2822
- logoUrl?: string;
2823
- /**
2824
- * Whether the platform is active
2825
- */
2826
- isActive?: boolean;
2827
- };
2828
- /**
2829
- * Platform type
2830
- */
2831
- type type3 = 'BANK' | 'BROKERAGE' | 'CRYPTO_EXCHANGE' | 'PAYMENT' | 'INVESTMENT' | 'INSURANCE' | 'OTHER';
2832
- type UpdatePlatformDto = {
2833
- /**
2834
- * Platform name
2835
- */
2836
- name?: string;
2837
- /**
2838
- * Platform canonical identifier (lowercase, kebab-case)
2839
- */
2840
- canonical?: string;
2841
- /**
2842
- * Platform aliases (multi-language names for lookup)
2843
- */
2844
- aliases?: Array<string>;
2845
- /**
2846
- * Platform URL
2847
- */
2848
- url?: string;
2849
- /**
2850
- * Platform type
2851
- */
2852
- type?: 'BANK' | 'BROKERAGE' | 'CRYPTO_EXCHANGE' | 'PAYMENT' | 'INVESTMENT' | 'INSURANCE' | 'OTHER';
2853
- /**
2854
- * Platform logo URL
2855
- */
2856
- logoUrl?: string;
2857
- /**
2858
- * Whether the platform is active
2859
- */
2860
- isActive?: boolean;
2861
- };
2862
3302
  type ProviderSyncConfigDto = {
2863
3303
  /**
2864
3304
  * Source account for the first posting
@@ -2880,6 +3320,10 @@ type ProviderSyncConfigDto = {
2880
3320
  * Filter pending transactions
2881
3321
  */
2882
3322
  filterPending?: boolean;
3323
+ /**
3324
+ * External account ID for per-batch providers (e.g. GoCardless). Overrides sourceAccount when an ExternalAccountLink mapping exists.
3325
+ */
3326
+ externalAccountId?: string;
2883
3327
  };
2884
3328
  type ProviderSyncDto = {
2885
3329
  /**
@@ -2931,7 +3375,43 @@ type SupportedProvidersResponseDto = {
2931
3375
  */
2932
3376
  providers: Array<string>;
2933
3377
  };
3378
+ type CreateExternalAccountLinkDto = {
3379
+ /**
3380
+ * Open Banking provider (whitelist)
3381
+ */
3382
+ provider: 'plaid' | 'teller' | 'truelayer' | 'gocardless' | 'simplefin' | 'yodlee' | 'beancount-direct' | 'parsed-bill';
3383
+ /**
3384
+ * External account ID from the provider
3385
+ */
3386
+ externalAccountId: string;
3387
+ /**
3388
+ * Target BeanAccount ID (must belong to the JWT user)
3389
+ */
3390
+ beanAccountId: string;
3391
+ };
3392
+ /**
3393
+ * Open Banking provider (whitelist)
3394
+ */
3395
+ type provider = 'plaid' | 'teller' | 'truelayer' | 'gocardless' | 'simplefin' | 'yodlee' | 'beancount-direct' | 'parsed-bill';
3396
+ type ExternalAccountLinkResponseDto = {
3397
+ id: string;
3398
+ provider: string;
3399
+ externalAccountId: string;
3400
+ beanAccountId: string;
3401
+ isActive: boolean;
3402
+ createdAt: string;
3403
+ updatedAt: string;
3404
+ };
3405
+ type ExternalAccountLinkListResponseDto = {
3406
+ items: Array<ExternalAccountLinkResponseDto>;
3407
+ total: number;
3408
+ /**
3409
+ * Filter by provider (query param)
3410
+ */
3411
+ provider?: string;
3412
+ };
2934
3413
  type ParserTelemetryReportDto = unknown;
3414
+ type UncoveredFormatMissDto = unknown;
2935
3415
  type ProcessNlpDto = {
2936
3416
  /**
2937
3417
  * Natural language text describing a transaction (Chinese)
@@ -3448,7 +3928,7 @@ type status4 = 'success' | 'pending' | 'error';
3448
3928
  /**
3449
3929
  * Action taken or requested
3450
3930
  */
3451
- type action = 'created' | 'ask' | 'confirm' | 'confirm_duplicate' | 'confirm_rule' | 'confirm_account' | 'confirm_payee' | 'cancel';
3931
+ type action2 = 'created' | 'ask' | 'confirm' | 'confirm_duplicate' | 'confirm_rule' | 'confirm_account' | 'confirm_payee' | 'cancel';
3452
3932
  /**
3453
3933
  * Transaction intent detected by EntityRouter (v6.0: 5 core intents). Frontend uses this to render scenario-specific form fields.
3454
3934
  */
@@ -3465,30 +3945,174 @@ type liabilitySubType = 'borrow' | 'repay';
3465
3945
  * Equity sub-type (only present when intent is "equity"). opening: account opening balance (Equity → Assets), adjustment: balance correction.
3466
3946
  */
3467
3947
  type equitySubType = 'opening' | 'adjustment';
3468
- type BalanceByCurrencyDto = {
3948
+ type PlatformListItemDto = {
3469
3949
  /**
3470
- * ISO 4217 currency code
3950
+ * Global platform ID
3471
3951
  */
3472
- currency: string;
3952
+ id: string;
3473
3953
  /**
3474
- * Balance amount
3954
+ * Platform name
3475
3955
  */
3476
- balance: string;
3477
- };
3478
- type NetWorthByCurrencyDto = {
3956
+ name: string;
3479
3957
  /**
3480
- * Net worth by currency
3958
+ * Platform URL
3481
3959
  */
3482
- netWorth: Array<BalanceByCurrencyDto>;
3960
+ url: string;
3483
3961
  /**
3484
- * Assets by currency
3962
+ * Platform type
3485
3963
  */
3486
- assets: Array<BalanceByCurrencyDto>;
3964
+ type: 'BANK' | 'BROKERAGE' | 'CRYPTO_EXCHANGE' | 'PAYMENT' | 'INVESTMENT' | 'INSURANCE' | 'OTHER';
3487
3965
  /**
3488
- * Liabilities by currency
3966
+ * Canonical identifier in ACCOUNT_RE format (e.g., "icbc")
3489
3967
  */
3490
- liabilities: Array<BalanceByCurrencyDto>;
3491
- };
3968
+ canonical: string;
3969
+ /**
3970
+ * Suggested path segment — canonical with first char uppercased (ACC_COMP_NAME_RE)
3971
+ */
3972
+ suggestedSegment: string;
3973
+ /**
3974
+ * Logo URL
3975
+ */
3976
+ logoUrl: string | null;
3977
+ /**
3978
+ * Whether user has accounts using this platform
3979
+ */
3980
+ isBound: boolean;
3981
+ };
3982
+ /**
3983
+ * Platform type
3984
+ */
3985
+ type type3 = 'BANK' | 'BROKERAGE' | 'CRYPTO_EXCHANGE' | 'PAYMENT' | 'INVESTMENT' | 'INSURANCE' | 'OTHER';
3986
+ type PlatformMatchResultDto = {
3987
+ /**
3988
+ * Global platform ID
3989
+ */
3990
+ id: string;
3991
+ /**
3992
+ * Platform name (e.g., "ICBC")
3993
+ */
3994
+ name: string;
3995
+ /**
3996
+ * Canonical identifier in ACCOUNT_RE format (e.g., "icbc")
3997
+ */
3998
+ canonical: string;
3999
+ /**
4000
+ * Platform type
4001
+ */
4002
+ type: 'BANK' | 'BROKERAGE' | 'CRYPTO_EXCHANGE' | 'PAYMENT' | 'INVESTMENT' | 'INSURANCE' | 'OTHER';
4003
+ /**
4004
+ * Suggested path segment — canonical, already in ACCOUNT_RE format
4005
+ */
4006
+ suggestedSegment: string;
4007
+ /**
4008
+ * Logo URL
4009
+ */
4010
+ logoUrl: string | null;
4011
+ /**
4012
+ * How this row matched: 'exact' > 'prefix' > 'substring'
4013
+ */
4014
+ matchType: 'exact' | 'prefix' | 'substring';
4015
+ };
4016
+ /**
4017
+ * How this row matched: 'exact' > 'prefix' > 'substring'
4018
+ */
4019
+ type matchType = 'exact' | 'prefix' | 'substring';
4020
+ type PlatformMatchResponseDto = {
4021
+ /**
4022
+ * Ranked matches, best tier first (at most 10 rows)
4023
+ */
4024
+ platforms: Array<PlatformMatchResultDto>;
4025
+ /**
4026
+ * Overall match quality — top row's tier, or 'none' when no hits
4027
+ */
4028
+ matchType: 'none' | 'exact' | 'prefix' | 'substring';
4029
+ /**
4030
+ * Total matches before LIMIT (truncation transparency)
4031
+ */
4032
+ total: number;
4033
+ /**
4034
+ * true when total > platforms.length (more matches exist)
4035
+ */
4036
+ hasMore: boolean;
4037
+ };
4038
+ /**
4039
+ * Overall match quality — top row's tier, or 'none' when no hits
4040
+ */
4041
+ type matchType2 = 'none' | 'exact' | 'prefix' | 'substring';
4042
+ type CreatePlatformDto = {
4043
+ /**
4044
+ * Platform name
4045
+ */
4046
+ name: string;
4047
+ /**
4048
+ * Platform canonical identifier (lowercase, kebab-case)
4049
+ */
4050
+ canonical: string;
4051
+ /**
4052
+ * Platform aliases (multi-language names for lookup)
4053
+ */
4054
+ aliases: Array<string>;
4055
+ /**
4056
+ * Platform URL
4057
+ */
4058
+ url: string;
4059
+ /**
4060
+ * Platform type
4061
+ */
4062
+ type: 'BANK' | 'BROKERAGE' | 'CRYPTO_EXCHANGE' | 'PAYMENT' | 'INVESTMENT' | 'INSURANCE' | 'OTHER';
4063
+ /**
4064
+ * Platform logo URL
4065
+ */
4066
+ logoUrl?: string;
4067
+ /**
4068
+ * Whether the platform is active
4069
+ */
4070
+ isActive?: boolean;
4071
+ };
4072
+ type UpdatePlatformDto = {
4073
+ /**
4074
+ * Platform name
4075
+ */
4076
+ name?: string;
4077
+ /**
4078
+ * Platform canonical identifier (lowercase, kebab-case)
4079
+ */
4080
+ canonical?: string;
4081
+ /**
4082
+ * Platform aliases (multi-language names for lookup)
4083
+ */
4084
+ aliases?: Array<string>;
4085
+ /**
4086
+ * Platform URL
4087
+ */
4088
+ url?: string;
4089
+ /**
4090
+ * Platform type
4091
+ */
4092
+ type?: 'BANK' | 'BROKERAGE' | 'CRYPTO_EXCHANGE' | 'PAYMENT' | 'INVESTMENT' | 'INSURANCE' | 'OTHER';
4093
+ /**
4094
+ * Platform logo URL
4095
+ */
4096
+ logoUrl?: string;
4097
+ /**
4098
+ * Whether the platform is active
4099
+ */
4100
+ isActive?: boolean;
4101
+ };
4102
+ type NetWorthByCurrencyDto = {
4103
+ /**
4104
+ * Net worth by currency
4105
+ */
4106
+ netWorth: Array<BalanceByCurrencyDto>;
4107
+ /**
4108
+ * Assets by currency
4109
+ */
4110
+ assets: Array<BalanceByCurrencyDto>;
4111
+ /**
4112
+ * Liabilities by currency
4113
+ */
4114
+ liabilities: Array<BalanceByCurrencyDto>;
4115
+ };
3492
4116
  type ConvertedNetWorthDto = {
3493
4117
  /**
3494
4118
  * Base currency for conversion
@@ -3513,20 +4137,6 @@ type ConvertedNetWorthDto = {
3513
4137
  [key: string]: unknown;
3514
4138
  };
3515
4139
  };
3516
- type ExchangeRateWarningDto = {
3517
- /**
3518
- * Warning type
3519
- */
3520
- type: string;
3521
- /**
3522
- * Currency without exchange rate
3523
- */
3524
- currency: string;
3525
- /**
3526
- * Total amount affected
3527
- */
3528
- totalAmount: string;
3529
- };
3530
4140
  type NetWorthResponseDto = {
3531
4141
  /**
3532
4142
  * Total net worth (assets - liabilities, converted to base currency)
@@ -3590,6 +4200,10 @@ type AccountItemDto = {
3590
4200
  * Currency code
3591
4201
  */
3592
4202
  currency: string;
4203
+ /**
4204
+ * FX-converted balance in base currency; omitted when not convertible
4205
+ */
4206
+ convertedBalance?: string;
3593
4207
  };
3594
4208
  type PlatformGroupDto = {
3595
4209
  /**
@@ -3605,9 +4219,39 @@ type PlatformGroupDto = {
3605
4219
  */
3606
4220
  accounts: Array<AccountItemDto>;
3607
4221
  /**
3608
- * Total balance across all accounts in platform
4222
+ * FX-converted total balance in base currency
3609
4223
  */
3610
4224
  totalBalance: string;
4225
+ /**
4226
+ * Raw (unconverted) balances grouped by currency
4227
+ */
4228
+ balanceByCurrency: Array<BalanceByCurrencyDto>;
4229
+ /**
4230
+ * Converted balance in base currency (omitted when no currency is convertible)
4231
+ */
4232
+ convertedBalance?: string;
4233
+ /**
4234
+ * Share of the grand converted total (0-100); 0 when grand total is 0
4235
+ */
4236
+ sharePct: number;
4237
+ };
4238
+ type AccountExchangeRateWarningDto = {
4239
+ /**
4240
+ * Warning type
4241
+ */
4242
+ type: string;
4243
+ /**
4244
+ * Currency without exchange rate
4245
+ */
4246
+ currency: string;
4247
+ /**
4248
+ * Affected account paths
4249
+ */
4250
+ accounts: Array<string>;
4251
+ /**
4252
+ * Total amount in this currency
4253
+ */
4254
+ totalAmount: string;
3611
4255
  };
3612
4256
  type AccountsSummaryDto = {
3613
4257
  /**
@@ -3618,6 +4262,14 @@ type AccountsSummaryDto = {
3618
4262
  * Total number of platforms
3619
4263
  */
3620
4264
  totalPlatforms: number;
4265
+ /**
4266
+ * Base currency for conversion
4267
+ */
4268
+ baseCurrency: string;
4269
+ /**
4270
+ * Per-account exchange rate warnings
4271
+ */
4272
+ warnings?: Array<AccountExchangeRateWarningDto>;
3621
4273
  };
3622
4274
  type AccountsResponseDto = {
3623
4275
  /**
@@ -3650,6 +4302,10 @@ type AccountItemWithAssetClassDto = {
3650
4302
  * Currency code
3651
4303
  */
3652
4304
  currency: string;
4305
+ /**
4306
+ * FX-converted balance in base currency; omitted when not convertible
4307
+ */
4308
+ convertedBalance?: string;
3653
4309
  /**
3654
4310
  * Asset class
3655
4311
  */
@@ -3666,7 +4322,15 @@ type AccountItemWithAssetClassDto = {
3666
4322
  * Risk level
3667
4323
  */
3668
4324
  riskLevel?: string;
4325
+ /**
4326
+ * ADR-0105 classification provenance (holding level always; account level only on FALLBACK)
4327
+ */
4328
+ source?: 'USER_META' | 'FIAT_CURRENCY' | 'OPENBB_MAPPING' | 'FALLBACK';
3669
4329
  };
4330
+ /**
4331
+ * ADR-0105 classification provenance (holding level always; account level only on FALLBACK)
4332
+ */
4333
+ type source2 = 'USER_META' | 'FIAT_CURRENCY' | 'OPENBB_MAPPING' | 'FALLBACK';
3670
4334
  type AssetClassGroupDto = {
3671
4335
  /**
3672
4336
  * Asset class name
@@ -3693,24 +4357,6 @@ type AssetClassGroupDto = {
3693
4357
  * Asset class name
3694
4358
  */
3695
4359
  type assetClass = 'LIQUIDITY' | 'EQUITY' | 'FIXED_INCOME' | 'PRECIOUS_METALS' | 'COMMODITY' | 'INSURANCE' | 'ALTERNATIVE_INVESTMENT' | 'PERSONAL_ASSETS' | 'LIABILITY' | 'REAL_ESTATE' | 'INDEX';
3696
- type AccountExchangeRateWarningDto = {
3697
- /**
3698
- * Warning type
3699
- */
3700
- type: string;
3701
- /**
3702
- * Currency without exchange rate
3703
- */
3704
- currency: string;
3705
- /**
3706
- * Affected account paths
3707
- */
3708
- accounts: Array<string>;
3709
- /**
3710
- * Total amount in this currency
3711
- */
3712
- totalAmount: string;
3713
- };
3714
4360
  type AssetClassSummaryDto = {
3715
4361
  /**
3716
4362
  * Total number of accounts
@@ -3728,6 +4374,12 @@ type AssetClassSummaryDto = {
3728
4374
  * Exchange rate warnings
3729
4375
  */
3730
4376
  warnings?: Array<AccountExchangeRateWarningDto>;
4377
+ /**
4378
+ * 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.
4379
+ */
4380
+ fallback?: {
4381
+ [key: string]: unknown;
4382
+ };
3731
4383
  };
3732
4384
  type AssetClassAccountsResponseDto = {
3733
4385
  /**
@@ -3738,6 +4390,54 @@ type AssetClassAccountsResponseDto = {
3738
4390
  * Summary statistics
3739
4391
  */
3740
4392
  summary: AssetClassSummaryDto;
4393
+ /**
4394
+ * ADR-0105 §6 holding-level grey-area bucket (source=FALLBACK holdings peeled out of groups). Present only for groupBy=holdingAssetClass when FALLBACK holdings exist.
4395
+ */
4396
+ uncategorized?: AssetClassGroupDto;
4397
+ };
4398
+ type HoldingAssetClassAccountSliceDto = {
4399
+ /**
4400
+ * Account ID
4401
+ */
4402
+ accountId: string;
4403
+ /**
4404
+ * Full account path
4405
+ */
4406
+ accountPath: string;
4407
+ /**
4408
+ * Currency of the holding with the largest converted base value; undefined when no holding is convertible
4409
+ */
4410
+ accountCurrency?: string;
4411
+ /**
4412
+ * Account's market value in base currency (Σ converted holdings; grey bucket included)
4413
+ */
4414
+ marketValueBase: string;
4415
+ /**
4416
+ * Share of the global total (0-100). 0 when globalTotal is zero (no NaN/Infinity).
4417
+ */
4418
+ shareOfTotalPct: number;
4419
+ /**
4420
+ * Per-account asset-class breakdown
4421
+ */
4422
+ groups: Array<AssetClassGroupDto>;
4423
+ /**
4424
+ * Per-account grey bucket (source=FALLBACK holdings, incl. broker cash)
4425
+ */
4426
+ uncategorized?: AssetClassGroupDto;
4427
+ /**
4428
+ * Every holding row for this account (account ID in each row’s `id` field)
4429
+ */
4430
+ holdings: Array<AccountItemWithAssetClassDto>;
4431
+ };
4432
+ type HoldingAssetClassCrossAccountResponseDto = {
4433
+ /**
4434
+ * Merged cross-account holding aggregation
4435
+ */
4436
+ global: AssetClassAccountsResponseDto;
4437
+ /**
4438
+ * Per-account slices
4439
+ */
4440
+ byAccount: Array<HoldingAssetClassAccountSliceDto>;
3741
4441
  };
3742
4442
  type CashFlowByCurrencyDto = {
3743
4443
  /**
@@ -3815,6 +4515,231 @@ type CashFlowResponseDto = {
3815
4515
  */
3816
4516
  warnings?: Array<ExchangeRateWarningDto>;
3817
4517
  };
4518
+ type CategoryGroupDto = {
4519
+ /**
4520
+ * Functional category (account-path Group segment); regional and universal account paths merge under it
4521
+ */
4522
+ category: string;
4523
+ /**
4524
+ * Converted total for this category in base currency (expense amount when flow=expense, income amount when flow=income)
4525
+ */
4526
+ totalExpense: string;
4527
+ /**
4528
+ * Share of grand total (0-100); 0 when grand total is 0
4529
+ */
4530
+ sharePct: number;
4531
+ /**
4532
+ * Raw (unconverted) expense per currency
4533
+ */
4534
+ balanceByCurrency: Array<BalanceByCurrencyDto>;
4535
+ /**
4536
+ * Converted total in base currency (omitted when FX missing for all currencies in this category)
4537
+ */
4538
+ convertedBalance?: string;
4539
+ };
4540
+ type ExpensesByCategorySummaryDto = {
4541
+ /**
4542
+ * Total across all categories, converted (convertible categories only); expense totals when flow=expense, income totals when flow=income
4543
+ */
4544
+ totalExpense: string;
4545
+ /**
4546
+ * Number of categories
4547
+ */
4548
+ categoryCount: number;
4549
+ };
4550
+ type ExpensesByCategoryResponseDto = {
4551
+ /**
4552
+ * Period requested
4553
+ */
4554
+ period: string;
4555
+ /**
4556
+ * Base currency for converted values
4557
+ */
4558
+ baseCurrency: string;
4559
+ /**
4560
+ * Expense groups by functional category, sorted by converted total desc
4561
+ */
4562
+ groups: Array<CategoryGroupDto>;
4563
+ /**
4564
+ * Summary statistics
4565
+ */
4566
+ summary: ExpensesByCategorySummaryDto;
4567
+ /**
4568
+ * Exchange rate warnings (e.g. missing rate for a currency)
4569
+ */
4570
+ warnings?: Array<ExchangeRateWarningDto>;
4571
+ };
4572
+ type MonetaryDto = {
4573
+ /**
4574
+ * Amount (Decimal string)
4575
+ */
4576
+ amount: string;
4577
+ /**
4578
+ * ISO 4217 currency
4579
+ */
4580
+ currency: string;
4581
+ /**
4582
+ * Converted to user base currency (Decimal string)
4583
+ */
4584
+ baseCcyEquivalent?: {
4585
+ [key: string]: unknown;
4586
+ } | null;
4587
+ };
4588
+ type CurrentPriceDto = {
4589
+ /**
4590
+ * Price amount (Decimal string)
4591
+ */
4592
+ amount: string;
4593
+ /**
4594
+ * Price currency (ISO 4217)
4595
+ */
4596
+ currency: string;
4597
+ /**
4598
+ * Price date (ISO 8601)
4599
+ */
4600
+ date: string;
4601
+ /**
4602
+ * Price source
4603
+ */
4604
+ source: 'USER_OVERRIDE' | 'OPENBB_EQUITY' | 'OPENBB_CURRENCY';
4605
+ };
4606
+ /**
4607
+ * Price source
4608
+ */
4609
+ type source3 = 'USER_OVERRIDE' | 'OPENBB_EQUITY' | 'OPENBB_CURRENCY';
4610
+ type FxRateDto = {
4611
+ from: string;
4612
+ to: string;
4613
+ /**
4614
+ * FX rate (Decimal string)
4615
+ */
4616
+ rate: string;
4617
+ /**
4618
+ * Rate date (ISO 8601)
4619
+ */
4620
+ date: string;
4621
+ };
4622
+ type HoldingPnlRowDto = {
4623
+ /**
4624
+ * Account UUID
4625
+ */
4626
+ accountId: string;
4627
+ /**
4628
+ * Full account path
4629
+ */
4630
+ accountPath: string;
4631
+ /**
4632
+ * Account settlement currency (ISO 4217), from cost currency
4633
+ */
4634
+ accountCcy?: {
4635
+ [key: string]: unknown;
4636
+ } | null;
4637
+ /**
4638
+ * Broker type derived from Platform.type
4639
+ */
4640
+ brokerType?: {
4641
+ [key: string]: unknown;
4642
+ } | null;
4643
+ /**
4644
+ * Commodity symbol
4645
+ */
4646
+ symbol: string;
4647
+ /**
4648
+ * Chart segment token (libs/common resolver)
4649
+ */
4650
+ chartToken: 'equity' | 'fund' | 'bond' | 'cash' | 'other';
4651
+ assetClass: string;
4652
+ assetSubClass?: {
4653
+ [key: string]: unknown;
4654
+ } | null;
4655
+ /**
4656
+ * Net held units (Decimal string)
4657
+ */
4658
+ units: string;
4659
+ /**
4660
+ * Average cost per unit; null when cost currency conflicts or no cost
4661
+ */
4662
+ averageCostPerUnit?: MonetaryDto | null;
4663
+ /**
4664
+ * Cost basis of held units
4665
+ */
4666
+ costBasis?: MonetaryDto | null;
4667
+ /**
4668
+ * Market value at asOf price
4669
+ */
4670
+ marketValue?: MonetaryDto | null;
4671
+ /**
4672
+ * Price used for market value
4673
+ */
4674
+ currentPrice?: CurrentPriceDto | null;
4675
+ /**
4676
+ * Unrealized P&L in base currency (Decimal string); null when any FX/price missing
4677
+ */
4678
+ unrealizedPnlBase?: {
4679
+ [key: string]: unknown;
4680
+ } | null;
4681
+ /**
4682
+ * Unrealized P&L % (Decimal string)
4683
+ */
4684
+ unrealizedPnlPct?: {
4685
+ [key: string]: unknown;
4686
+ } | null;
4687
+ /**
4688
+ * Historical FX rate applied to cost basis
4689
+ */
4690
+ costFxRate?: FxRateDto | null;
4691
+ /**
4692
+ * FX rate applied to market value
4693
+ */
4694
+ marketFxRate?: FxRateDto | null;
4695
+ /**
4696
+ * Share of invested assets % (Decimal string); only for invested chartTokens
4697
+ */
4698
+ pctOfInvestedAssets?: {
4699
+ [key: string]: unknown;
4700
+ } | null;
4701
+ /**
4702
+ * 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
4703
+ */
4704
+ realizedPnl?: MonetaryDto | null;
4705
+ };
4706
+ /**
4707
+ * Chart segment token (libs/common resolver)
4708
+ */
4709
+ type chartToken = 'equity' | 'fund' | 'bond' | 'cash' | 'other';
4710
+ type HoldingPnlWarningDto = {
4711
+ /**
4712
+ * Warning type
4713
+ */
4714
+ type: 'MISSING_COST_FX_RATE' | 'MISSING_MARKET_FX_RATE' | 'MISSING_SALE_PRICE' | 'MISSING_REALIZED_FX_RATE' | 'OVERSOLD_LOTS' | 'NO_PRICE' | 'MIXED_COST_CURRENCY';
4715
+ symbol?: {
4716
+ [key: string]: unknown;
4717
+ } | null;
4718
+ accountId?: {
4719
+ [key: string]: unknown;
4720
+ } | null;
4721
+ currency?: {
4722
+ [key: string]: unknown;
4723
+ } | null;
4724
+ };
4725
+ /**
4726
+ * Warning type
4727
+ */
4728
+ type type4 = 'MISSING_COST_FX_RATE' | 'MISSING_MARKET_FX_RATE' | 'MISSING_SALE_PRICE' | 'MISSING_REALIZED_FX_RATE' | 'OVERSOLD_LOTS' | 'NO_PRICE' | 'MIXED_COST_CURRENCY';
4729
+ type HoldingPnlResponseDto = {
4730
+ asOfDate: string;
4731
+ baseCurrency: string;
4732
+ /**
4733
+ * Realized-P&L lot-matching method (FIFO or average). Unrealized cost basis remains average regardless of this value (#473).
4734
+ */
4735
+ method: 'average' | 'FIFO';
4736
+ rows: Array<HoldingPnlRowDto>;
4737
+ warnings: Array<HoldingPnlWarningDto>;
4738
+ };
4739
+ /**
4740
+ * Realized-P&L lot-matching method (FIFO or average). Unrealized cost basis remains average regardless of this value (#473).
4741
+ */
4742
+ type method = 'average' | 'FIFO';
3818
4743
  type CurrencyBalanceDto = {
3819
4744
  /**
3820
4745
  * ISO 4217 currency code
@@ -3840,6 +4765,14 @@ type TimeSeriesPointDto = {
3840
4765
  change?: {
3841
4766
  [key: string]: unknown;
3842
4767
  };
4768
+ /**
4769
+ * Total assets at this date (in base currency)
4770
+ */
4771
+ assets?: string;
4772
+ /**
4773
+ * Total liabilities at this date (in base currency)
4774
+ */
4775
+ liabilities?: string;
3843
4776
  /**
3844
4777
  * Multi-currency breakdown for this point
3845
4778
  */
@@ -3887,7 +4820,73 @@ type PortfolioTrendsResponseDto = {
3887
4820
  */
3888
4821
  period: string;
3889
4822
  /**
3890
- * Data granularity
4823
+ * Data granularity
4824
+ */
4825
+ granularity: string;
4826
+ /**
4827
+ * Base currency for converted values
4828
+ */
4829
+ currency: string;
4830
+ /**
4831
+ * Multi-currency time series (each point has currency breakdown)
4832
+ */
4833
+ byCurrency?: Array<MultiCurrencyPointDto>;
4834
+ /**
4835
+ * Exchange rate warnings
4836
+ */
4837
+ warnings?: Array<ExchangeRateWarningDto>;
4838
+ };
4839
+ type CashFlowPointDto = {
4840
+ /**
4841
+ * Month key (YYYY-MM)
4842
+ */
4843
+ month: string;
4844
+ /**
4845
+ * Income in base currency (absolute, converted)
4846
+ */
4847
+ income: string;
4848
+ /**
4849
+ * Expense in base currency (absolute, converted)
4850
+ */
4851
+ expense: string;
4852
+ /**
4853
+ * netSavings = income − expense (savings positive)
4854
+ */
4855
+ netSavings: string;
4856
+ };
4857
+ type CashFlowTrendSummaryDto = {
4858
+ /**
4859
+ * Total income across the period
4860
+ */
4861
+ totalIncome: string;
4862
+ /**
4863
+ * Total expense across the period
4864
+ */
4865
+ totalExpense: string;
4866
+ /**
4867
+ * income − expense across the period
4868
+ */
4869
+ totalNetSavings: string;
4870
+ /**
4871
+ * totalNetSavings divided by the window length (N months, incl. zero-filled)
4872
+ */
4873
+ averageMonthlyNetSavings: string;
4874
+ };
4875
+ type CashFlowTrendsResponseDto = {
4876
+ /**
4877
+ * Monthly cash-flow series (fixed N-month window, zero-filled)
4878
+ */
4879
+ series: Array<CashFlowPointDto>;
4880
+ /**
4881
+ * Period totals
4882
+ */
4883
+ summary: CashFlowTrendSummaryDto;
4884
+ /**
4885
+ * Period requested
4886
+ */
4887
+ period: string;
4888
+ /**
4889
+ * Data granularity (v1 returns month buckets)
3891
4890
  */
3892
4891
  granularity: string;
3893
4892
  /**
@@ -3895,11 +4894,7 @@ type PortfolioTrendsResponseDto = {
3895
4894
  */
3896
4895
  currency: string;
3897
4896
  /**
3898
- * Multi-currency time series (each point has currency breakdown)
3899
- */
3900
- byCurrency?: Array<MultiCurrencyPointDto>;
3901
- /**
3902
- * Exchange rate warnings
4897
+ * Exchange rate warnings (e.g. missing rate for a currency)
3903
4898
  */
3904
4899
  warnings?: Array<ExchangeRateWarningDto>;
3905
4900
  };
@@ -3939,7 +4934,7 @@ type AccountControllerFindAllData = {
3939
4934
  */
3940
4935
  region: 'cn' | 'us' | 'de' | 'gb';
3941
4936
  /**
3942
- * Search term for path or i18nKey
4937
+ * Search term for account path
3943
4938
  */
3944
4939
  search?: string;
3945
4940
  /**
@@ -4010,6 +5005,18 @@ type AccountControllerReopenData = {
4010
5005
  requestBody: ReopenAccountDto;
4011
5006
  };
4012
5007
  type AccountControllerReopenResponse = AccountResponseDto;
5008
+ type AccountControllerAddOpeningBalanceData = {
5009
+ /**
5010
+ * Account UUID
5011
+ */
5012
+ id: string;
5013
+ /**
5014
+ * Region code for tenant context
5015
+ */
5016
+ region: 'cn' | 'us' | 'de' | 'gb';
5017
+ requestBody: CreateOpeningBalanceDto;
5018
+ };
5019
+ type AccountControllerAddOpeningBalanceResponse = OpeningBalanceResultDto;
4013
5020
  type AccountStandardsControllerGetTemplatesData = {
4014
5021
  /**
4015
5022
  * Region code (cn, us, de)
@@ -4059,6 +5066,10 @@ type TransactionControllerListData = {
4059
5066
  * Filter by account ID (transactions with postings to this account)
4060
5067
  */
4061
5068
  accountId?: string;
5069
+ /**
5070
+ * Filter by ADR-0075 functional category (Group segment); matches any posting to an Expenses/Income account whose derived Group segment equals this value
5071
+ */
5072
+ category?: string;
4062
5073
  /**
4063
5074
  * Filter by start date (inclusive), format: YYYY-MM-DD
4064
5075
  */
@@ -4097,6 +5108,18 @@ type TransactionControllerCreateBatchData = {
4097
5108
  requestBody: BatchCreateTransactionDto;
4098
5109
  };
4099
5110
  type TransactionControllerCreateBatchResponse = BatchTransactionResponseDto;
5111
+ type TransactionControllerCorrectData = {
5112
+ /**
5113
+ * Original transaction ID to correct
5114
+ */
5115
+ id: string;
5116
+ /**
5117
+ * Region code for tenant context
5118
+ */
5119
+ region: 'cn' | 'us' | 'de' | 'gb';
5120
+ requestBody: CorrectTransactionDto;
5121
+ };
5122
+ type TransactionControllerCorrectResponse = TransactionDetailDto;
4100
5123
  type TransactionControllerSuggestTagsData = {
4101
5124
  /**
4102
5125
  * Max suggestions (1-100, default 10)
@@ -4155,7 +5178,7 @@ type TransactionControllerDeleteData = {
4155
5178
  type TransactionControllerDeleteResponse = void;
4156
5179
  type BalanceControllerGetBalanceData = {
4157
5180
  /**
4158
- * Account name (e.g., "Assets:Bank:Checking")
5181
+ * Account name (e.g., "Assets:Checking")
4159
5182
  */
4160
5183
  account: string;
4161
5184
  /**
@@ -4467,6 +5490,91 @@ type CommodityControllerBulkCreateData = {
4467
5490
  region: 'cn' | 'us' | 'de' | 'gb';
4468
5491
  };
4469
5492
  type CommodityControllerBulkCreateResponse = Array<CommodityResponseDto>;
5493
+ type PriceControllerCreateData = {
5494
+ /**
5495
+ * Region code for tenant context
5496
+ */
5497
+ region: 'cn' | 'us' | 'de' | 'gb';
5498
+ requestBody: CreateBeanPriceDto;
5499
+ };
5500
+ type PriceControllerCreateResponse = PriceResponseDto;
5501
+ type PriceControllerFindAllData = {
5502
+ /**
5503
+ * Filter by currency (e.g., BTC, AAPL, USD)
5504
+ */
5505
+ currency?: string;
5506
+ /**
5507
+ * Filter prices from this date (ISO 8601 format)
5508
+ */
5509
+ dateFrom?: string;
5510
+ /**
5511
+ * Filter prices to this date (ISO 8601 format)
5512
+ */
5513
+ dateTo?: string;
5514
+ /**
5515
+ * Number of items per page (default: 20, max: 100)
5516
+ */
5517
+ limit?: number;
5518
+ /**
5519
+ * Page number for pagination (default: 1)
5520
+ */
5521
+ page?: number;
5522
+ /**
5523
+ * Filter by quote currency (pricing currency, e.g., USD, CNY)
5524
+ */
5525
+ quoteCurrency?: string;
5526
+ /**
5527
+ * Region code for tenant context
5528
+ */
5529
+ region: 'cn' | 'us' | 'de' | 'gb';
5530
+ /**
5531
+ * Search term for currency or quoteCurrency (case-insensitive partial match)
5532
+ */
5533
+ search?: string;
5534
+ };
5535
+ type PriceControllerFindAllResponse = PriceListResponseDto;
5536
+ type PriceControllerFindOneData = {
5537
+ /**
5538
+ * Price ID
5539
+ */
5540
+ id: string;
5541
+ /**
5542
+ * Region code for tenant context
5543
+ */
5544
+ region: 'cn' | 'us' | 'de' | 'gb';
5545
+ };
5546
+ type PriceControllerFindOneResponse = PriceResponseDto;
5547
+ type PriceControllerUpdateData = {
5548
+ /**
5549
+ * Price ID
5550
+ */
5551
+ id: string;
5552
+ /**
5553
+ * Region code for tenant context
5554
+ */
5555
+ region: 'cn' | 'us' | 'de' | 'gb';
5556
+ requestBody: UpdateBeanPriceDto;
5557
+ };
5558
+ type PriceControllerUpdateResponse = PriceResponseDto;
5559
+ type PriceControllerDeleteData = {
5560
+ /**
5561
+ * Price ID
5562
+ */
5563
+ id: string;
5564
+ /**
5565
+ * Region code for tenant context
5566
+ */
5567
+ region: 'cn' | 'us' | 'de' | 'gb';
5568
+ };
5569
+ type PriceControllerDeleteResponse = void;
5570
+ type PriceControllerBulkCreateData = {
5571
+ /**
5572
+ * Region code for tenant context
5573
+ */
5574
+ region: 'cn' | 'us' | 'de' | 'gb';
5575
+ requestBody: Array<string>;
5576
+ };
5577
+ type PriceControllerBulkCreateResponse = Array<PriceResponseDto>;
4470
5578
  type RecurringRuleControllerCreateData = {
4471
5579
  /**
4472
5580
  * Region code for tenant context
@@ -4844,6 +5952,135 @@ type PropertyControllerDeleteData = {
4844
5952
  key: string;
4845
5953
  };
4846
5954
  type PropertyControllerDeleteResponse = void;
5955
+ type EventControllerCreateData = {
5956
+ /**
5957
+ * Region code for tenant context (decorative for life events)
5958
+ */
5959
+ region: 'cn' | 'us' | 'de' | 'gb';
5960
+ requestBody: CreateBeanEventDto;
5961
+ };
5962
+ type EventControllerCreateResponse = EventResponseDto;
5963
+ type EventControllerFindAllData = {
5964
+ /**
5965
+ * Filter life events from this date (ISO 8601 format)
5966
+ */
5967
+ from?: string;
5968
+ /**
5969
+ * Number of items per page (default: 20, max: 100)
5970
+ */
5971
+ limit?: number;
5972
+ /**
5973
+ * Page number for pagination (default: 1)
5974
+ */
5975
+ page?: number;
5976
+ /**
5977
+ * Search term for description (case-insensitive partial match)
5978
+ */
5979
+ q?: string;
5980
+ /**
5981
+ * Region code for tenant context (decorative for life events)
5982
+ */
5983
+ region: 'cn' | 'us' | 'de' | 'gb';
5984
+ /**
5985
+ * Filter life events to this date (ISO 8601 format)
5986
+ */
5987
+ to?: string;
5988
+ /**
5989
+ * Filter by life event type (exact match)
5990
+ */
5991
+ type?: string;
5992
+ };
5993
+ type EventControllerFindAllResponse = EventListResponseDto;
5994
+ type EventControllerFindOneData = {
5995
+ /**
5996
+ * Life event ID
5997
+ */
5998
+ id: string;
5999
+ /**
6000
+ * Region code for tenant context (decorative for life events)
6001
+ */
6002
+ region: 'cn' | 'us' | 'de' | 'gb';
6003
+ };
6004
+ type EventControllerFindOneResponse = EventResponseDto;
6005
+ type EventControllerUpdateData = {
6006
+ /**
6007
+ * Life event ID
6008
+ */
6009
+ id: string;
6010
+ /**
6011
+ * Region code for tenant context (decorative for life events)
6012
+ */
6013
+ region: 'cn' | 'us' | 'de' | 'gb';
6014
+ requestBody: UpdateBeanEventDto;
6015
+ };
6016
+ type EventControllerUpdateResponse = EventResponseDto;
6017
+ type EventControllerDeleteData = {
6018
+ /**
6019
+ * Life event ID
6020
+ */
6021
+ id: string;
6022
+ /**
6023
+ * Region code for tenant context (decorative for life events)
6024
+ */
6025
+ region: 'cn' | 'us' | 'de' | 'gb';
6026
+ };
6027
+ type EventControllerDeleteResponse = void;
6028
+ type EventControllerGetSliceData = {
6029
+ accountPattern: string;
6030
+ granularity: string;
6031
+ /**
6032
+ * Life event ID
6033
+ */
6034
+ id: string;
6035
+ /**
6036
+ * Region code for tenant context (decorative for life events)
6037
+ */
6038
+ region: 'cn' | 'us' | 'de' | 'gb';
6039
+ };
6040
+ type EventControllerGetSliceResponse = unknown;
6041
+ type OnboardingControllerBootstrapData = {
6042
+ /**
6043
+ * Region code for tenant context
6044
+ */
6045
+ region: 'cn' | 'us' | 'de' | 'gb';
6046
+ requestBody: OnboardingDto;
6047
+ };
6048
+ type OnboardingControllerBootstrapResponse = unknown;
6049
+ type ReconciliationControllerComputeData = {
6050
+ /**
6051
+ * Region code for tenant context (decorative for reconciliation)
6052
+ */
6053
+ region: 'cn' | 'us' | 'de' | 'gb';
6054
+ requestBody: ComputeReconciliationDto;
6055
+ };
6056
+ type ReconciliationControllerComputeResponse = ReconciliationComputeResultDto;
6057
+ type ReconciliationControllerAssertData = {
6058
+ /**
6059
+ * Region code for tenant context (decorative for reconciliation)
6060
+ */
6061
+ region: 'cn' | 'us' | 'de' | 'gb';
6062
+ requestBody: AssertReconciliationDto;
6063
+ };
6064
+ type ReconciliationControllerAssertResponse = ReconciliationRecordDto;
6065
+ type ReconciliationControllerPadData = {
6066
+ /**
6067
+ * Region code for tenant context (decorative for reconciliation)
6068
+ */
6069
+ region: 'cn' | 'us' | 'de' | 'gb';
6070
+ requestBody: PadReconciliationDto;
6071
+ };
6072
+ type ReconciliationControllerPadResponse = PadResultDto;
6073
+ type ReconciliationControllerHistoryData = {
6074
+ /**
6075
+ * BeanAccount id
6076
+ */
6077
+ accountId: string;
6078
+ /**
6079
+ * Region code for tenant context (decorative for reconciliation)
6080
+ */
6081
+ region: 'cn' | 'us' | 'de' | 'gb';
6082
+ };
6083
+ type ReconciliationControllerHistoryResponse = Array<ReconciliationRecordDto>;
4847
6084
  type ExportControllerExportBeancountResponse = unknown;
4848
6085
  type FileImportControllerImportFileData = {
4849
6086
  /**
@@ -4923,47 +6160,15 @@ type ImporterConfigControllerResetConfigData = {
4923
6160
  region: 'cn' | 'us' | 'de' | 'gb';
4924
6161
  };
4925
6162
  type ImporterConfigControllerResetConfigResponse = ImporterConfigDto;
4926
- type PlatformControllerFindAllResponse = unknown;
4927
- type PlatformControllerCreateData = {
4928
- requestBody: CreatePlatformDto;
4929
- };
4930
- type PlatformControllerCreateResponse = unknown;
4931
- type PlatformControllerGetPlatformListResponse = unknown;
4932
- type PlatformControllerMatchPlatformsData = {
4933
- /**
4934
- * Search query — Chinese name, English name, or abbreviation
4935
- */
4936
- q: string;
4937
- /**
4938
- * Region code for category override lookup
4939
- */
4940
- region?: string;
4941
- };
4942
- type PlatformControllerMatchPlatformsResponse = unknown;
4943
- type PlatformControllerUpdateData = {
4944
- /**
4945
- * Platform ID
4946
- */
4947
- id: string;
4948
- requestBody: UpdatePlatformDto;
4949
- };
4950
- type PlatformControllerUpdateResponse = unknown;
4951
- type PlatformControllerDeleteData = {
4952
- /**
4953
- * Platform ID
4954
- */
4955
- id: string;
4956
- };
4957
- type PlatformControllerDeleteResponse = void;
4958
6163
  type ProviderSyncControllerSyncData = {
4959
6164
  /**
4960
6165
  * Provider name
4961
6166
  */
4962
6167
  providerName: 'plaid' | 'teller' | 'truelayer' | 'gocardless' | 'simplefin' | 'yodlee' | 'beancount-direct' | 'parsed-bill';
4963
6168
  /**
4964
- * Region code
6169
+ * Region code for tenant context
4965
6170
  */
4966
- region: unknown;
6171
+ region: 'cn' | 'us' | 'de' | 'gb';
4967
6172
  requestBody: ProviderSyncDto;
4968
6173
  };
4969
6174
  type ProviderSyncControllerSyncResponse = ProviderSyncResponseDto;
@@ -4985,6 +6190,38 @@ type ProviderSyncControllerIsProviderSupportedData = {
4985
6190
  region: 'cn' | 'us' | 'de' | 'gb';
4986
6191
  };
4987
6192
  type ProviderSyncControllerIsProviderSupportedResponse = unknown;
6193
+ type ExternalAccountLinkControllerCreateData = {
6194
+ /**
6195
+ * Region code for tenant context
6196
+ */
6197
+ region: 'cn' | 'us' | 'de' | 'gb';
6198
+ requestBody: CreateExternalAccountLinkDto;
6199
+ };
6200
+ type ExternalAccountLinkControllerCreateResponse = ExternalAccountLinkResponseDto;
6201
+ type ExternalAccountLinkControllerFindAllData = {
6202
+ provider: string;
6203
+ /**
6204
+ * Region code for tenant context
6205
+ */
6206
+ region: 'cn' | 'us' | 'de' | 'gb';
6207
+ };
6208
+ type ExternalAccountLinkControllerFindAllResponse = ExternalAccountLinkListResponseDto;
6209
+ type ExternalAccountLinkControllerFindOneData = {
6210
+ id: string;
6211
+ /**
6212
+ * Region code for tenant context
6213
+ */
6214
+ region: 'cn' | 'us' | 'de' | 'gb';
6215
+ };
6216
+ type ExternalAccountLinkControllerFindOneResponse = ExternalAccountLinkResponseDto;
6217
+ type ExternalAccountLinkControllerRemoveData = {
6218
+ id: string;
6219
+ /**
6220
+ * Region code for tenant context
6221
+ */
6222
+ region: 'cn' | 'us' | 'de' | 'gb';
6223
+ };
6224
+ type ExternalAccountLinkControllerRemoveResponse = void;
4988
6225
  type TelemetryControllerReportTelemetryData = {
4989
6226
  /**
4990
6227
  * Region code for tenant context
@@ -4993,6 +6230,25 @@ type TelemetryControllerReportTelemetryData = {
4993
6230
  requestBody: ParserTelemetryReportDto;
4994
6231
  };
4995
6232
  type TelemetryControllerReportTelemetryResponse = unknown;
6233
+ type TelemetryControllerReportCoverageMissData = {
6234
+ /**
6235
+ * Region code for tenant context
6236
+ */
6237
+ region: 'cn' | 'us' | 'de' | 'gb';
6238
+ requestBody: UncoveredFormatMissDto;
6239
+ };
6240
+ type TelemetryControllerReportCoverageMissResponse = unknown;
6241
+ type TelemetryControllerGetCoverageMetricsData = {
6242
+ /**
6243
+ * Region code for tenant context
6244
+ */
6245
+ region: 'cn' | 'us' | 'de' | 'gb';
6246
+ /**
6247
+ * Top-N uncovered formats (default 10)
6248
+ */
6249
+ topN?: unknown;
6250
+ };
6251
+ type TelemetryControllerGetCoverageMetricsResponse = unknown;
4996
6252
  type NlpControllerProcessNaturalLanguageData = {
4997
6253
  /**
4998
6254
  * Region code for tenant context
@@ -5021,11 +6277,43 @@ type NlpControllerGetSessionData = {
5021
6277
  */
5022
6278
  region: 'cn' | 'us' | 'de' | 'gb';
5023
6279
  /**
5024
- * Specific session ID to get (defaults to user session)
6280
+ * Specific session ID to get (defaults to user session)
6281
+ */
6282
+ sessionId?: string;
6283
+ };
6284
+ type NlpControllerGetSessionResponse = unknown;
6285
+ type PlatformControllerFindAllResponse = unknown;
6286
+ type PlatformControllerCreateData = {
6287
+ requestBody: CreatePlatformDto;
6288
+ };
6289
+ type PlatformControllerCreateResponse = unknown;
6290
+ type PlatformControllerGetPlatformListResponse = Array<PlatformListItemDto>;
6291
+ type PlatformControllerMatchPlatformsData = {
6292
+ /**
6293
+ * Search query — Chinese name, English name, or abbreviation
6294
+ */
6295
+ q: string;
6296
+ /**
6297
+ * Region code for category override lookup
6298
+ */
6299
+ region?: string;
6300
+ };
6301
+ type PlatformControllerMatchPlatformsResponse = PlatformMatchResponseDto;
6302
+ type PlatformControllerUpdateData = {
6303
+ /**
6304
+ * Platform ID
6305
+ */
6306
+ id: string;
6307
+ requestBody: UpdatePlatformDto;
6308
+ };
6309
+ type PlatformControllerUpdateResponse = unknown;
6310
+ type PlatformControllerDeleteData = {
6311
+ /**
6312
+ * Platform ID
5025
6313
  */
5026
- sessionId?: string;
6314
+ id: string;
5027
6315
  };
5028
- type NlpControllerGetSessionResponse = unknown;
6316
+ type PlatformControllerDeleteResponse = void;
5029
6317
  type DashboardControllerGetNetWorthData = {
5030
6318
  /**
5031
6319
  * Date for balance calculation (ISO 8601 format)
@@ -5038,6 +6326,10 @@ type DashboardControllerGetNetWorthData = {
5038
6326
  };
5039
6327
  type DashboardControllerGetNetWorthResponse = NetWorthResponseDto;
5040
6328
  type DashboardControllerGetAccountsData = {
6329
+ /**
6330
+ * Scope to a single account (only valid with groupBy=holdingAssetClass, ADR-0105 §6)
6331
+ */
6332
+ accountId?: string;
5041
6333
  /**
5042
6334
  * Date for balance calculation (ISO 8601 format)
5043
6335
  */
@@ -5045,13 +6337,13 @@ type DashboardControllerGetAccountsData = {
5045
6337
  /**
5046
6338
  * Grouping strategy
5047
6339
  */
5048
- groupBy?: 'platform' | 'assetClass';
6340
+ groupBy?: 'platform' | 'assetClass' | 'holdingAssetClass' | 'holdingAssetClassByAccount';
5049
6341
  /**
5050
6342
  * Region code for tenant context
5051
6343
  */
5052
6344
  region: 'cn' | 'us' | 'de' | 'gb';
5053
6345
  };
5054
- type DashboardControllerGetAccountsResponse = AccountsResponseDto | AssetClassAccountsResponseDto;
6346
+ type DashboardControllerGetAccountsResponse = AccountsResponseDto | AssetClassAccountsResponseDto | HoldingAssetClassCrossAccountResponseDto;
5055
6347
  type DashboardControllerGetCashFlowData = {
5056
6348
  /**
5057
6349
  * Period in YYYY-MM format
@@ -5063,6 +6355,44 @@ type DashboardControllerGetCashFlowData = {
5063
6355
  region: 'cn' | 'us' | 'de' | 'gb';
5064
6356
  };
5065
6357
  type DashboardControllerGetCashFlowResponse = CashFlowResponseDto;
6358
+ type DashboardControllerGetExpensesData = {
6359
+ /**
6360
+ * Account root to aggregate (expense → ^Expenses:, income → ^Income:)
6361
+ */
6362
+ flow?: 'expense' | 'income';
6363
+ /**
6364
+ * Grouping strategy
6365
+ */
6366
+ groupBy?: 'category';
6367
+ /**
6368
+ * Time window (1m = current calendar month)
6369
+ */
6370
+ period?: '1m' | '3m' | '6m' | '1y';
6371
+ /**
6372
+ * Region code for tenant context
6373
+ */
6374
+ region: 'cn' | 'us' | 'de' | 'gb';
6375
+ };
6376
+ type DashboardControllerGetExpensesResponse = ExpensesByCategoryResponseDto;
6377
+ type HoldingPnlControllerGetHoldingPnlData = {
6378
+ /**
6379
+ * Scope to a single account
6380
+ */
6381
+ accountId?: string;
6382
+ /**
6383
+ * As-of date (ISO 8601), defaults to today
6384
+ */
6385
+ asOf?: string;
6386
+ /**
6387
+ * Realized-P&L lot-matching method (default average). Does not affect the average-cost unrealized basis.
6388
+ */
6389
+ method?: 'FIFO' | 'average';
6390
+ /**
6391
+ * Region code for tenant context
6392
+ */
6393
+ region: 'cn' | 'us' | 'de' | 'gb';
6394
+ };
6395
+ type HoldingPnlControllerGetHoldingPnlResponse = HoldingPnlResponseDto;
5066
6396
  type ReportingControllerGetPortfolioTrendsData = {
5067
6397
  /**
5068
6398
  * Data granularity
@@ -5078,6 +6408,21 @@ type ReportingControllerGetPortfolioTrendsData = {
5078
6408
  region: 'cn' | 'us' | 'de' | 'gb';
5079
6409
  };
5080
6410
  type ReportingControllerGetPortfolioTrendsResponse = PortfolioTrendsResponseDto;
6411
+ type ReportingControllerGetCashFlowTrendsData = {
6412
+ /**
6413
+ * Data granularity (accepted for API symmetry; v1 returns month buckets)
6414
+ */
6415
+ granularity?: 'day' | 'week' | 'month';
6416
+ /**
6417
+ * Time period
6418
+ */
6419
+ period?: '1m' | '3m' | '6m' | '1y';
6420
+ /**
6421
+ * Region code for tenant context
6422
+ */
6423
+ region: 'cn' | 'us' | 'de' | 'gb';
6424
+ };
6425
+ type ReportingControllerGetCashFlowTrendsResponse = CashFlowTrendsResponseDto;
5081
6426
  type ReportingControllerGenerateSnapshotData = {
5082
6427
  /**
5083
6428
  * Region code for tenant context
@@ -5236,6 +6581,25 @@ type $OpenApiTs = {
5236
6581
  };
5237
6582
  };
5238
6583
  };
6584
+ '/api/v1/{region}/bean/accounts/{id}/opening-balance': {
6585
+ post: {
6586
+ req: AccountControllerAddOpeningBalanceData;
6587
+ res: {
6588
+ /**
6589
+ * Opening-balance transaction created
6590
+ */
6591
+ 201: OpeningBalanceResultDto;
6592
+ /**
6593
+ * Account not found
6594
+ */
6595
+ 404: unknown;
6596
+ /**
6597
+ * An opening balance already exists for this account
6598
+ */
6599
+ 409: unknown;
6600
+ };
6601
+ };
6602
+ };
5239
6603
  '/api/v1/{region}/bean/account-standards': {
5240
6604
  get: {
5241
6605
  req: AccountStandardsControllerGetTemplatesData;
@@ -5332,6 +6696,29 @@ type $OpenApiTs = {
5332
6696
  };
5333
6697
  };
5334
6698
  };
6699
+ '/api/v1/{region}/bean/transactions/{id}/correct': {
6700
+ post: {
6701
+ req: TransactionControllerCorrectData;
6702
+ res: {
6703
+ /**
6704
+ * Corrected transaction created
6705
+ */
6706
+ 201: TransactionDetailDto;
6707
+ /**
6708
+ * Original transaction not found
6709
+ */
6710
+ 404: ApiProblemResponseDto;
6711
+ /**
6712
+ * Original no longer ACTIVE (concurrent modification)
6713
+ */
6714
+ 409: ApiProblemResponseDto;
6715
+ /**
6716
+ * Pipeline validation failed (does not balance, invalid accounts)
6717
+ */
6718
+ 422: ApiProblemResponseDto;
6719
+ };
6720
+ };
6721
+ };
5335
6722
  '/api/v1/{region}/bean/transactions/tags': {
5336
6723
  get: {
5337
6724
  req: TransactionControllerSuggestTagsData;
@@ -5821,6 +7208,90 @@ type $OpenApiTs = {
5821
7208
  };
5822
7209
  };
5823
7210
  };
7211
+ '/api/v1/{region}/bean/prices': {
7212
+ post: {
7213
+ req: PriceControllerCreateData;
7214
+ res: {
7215
+ /**
7216
+ * Price created successfully
7217
+ */
7218
+ 201: PriceResponseDto;
7219
+ /**
7220
+ * Currency or quoteCurrency commodity not found
7221
+ */
7222
+ 404: unknown;
7223
+ /**
7224
+ * Price already exists for this currency pair and date
7225
+ */
7226
+ 409: unknown;
7227
+ };
7228
+ };
7229
+ get: {
7230
+ req: PriceControllerFindAllData;
7231
+ res: {
7232
+ /**
7233
+ * Prices retrieved successfully
7234
+ */
7235
+ 200: PriceListResponseDto;
7236
+ };
7237
+ };
7238
+ };
7239
+ '/api/v1/{region}/bean/prices/{id}': {
7240
+ get: {
7241
+ req: PriceControllerFindOneData;
7242
+ res: {
7243
+ /**
7244
+ * Price retrieved successfully
7245
+ */
7246
+ 200: PriceResponseDto;
7247
+ /**
7248
+ * Price not found
7249
+ */
7250
+ 404: unknown;
7251
+ };
7252
+ };
7253
+ put: {
7254
+ req: PriceControllerUpdateData;
7255
+ res: {
7256
+ /**
7257
+ * Price updated successfully
7258
+ */
7259
+ 200: PriceResponseDto;
7260
+ /**
7261
+ * Price not found
7262
+ */
7263
+ 404: unknown;
7264
+ /**
7265
+ * Updated price conflicts with existing price
7266
+ */
7267
+ 409: unknown;
7268
+ };
7269
+ };
7270
+ delete: {
7271
+ req: PriceControllerDeleteData;
7272
+ res: {
7273
+ /**
7274
+ * Price deleted successfully
7275
+ */
7276
+ 204: void;
7277
+ /**
7278
+ * Price not found
7279
+ */
7280
+ 404: unknown;
7281
+ };
7282
+ };
7283
+ };
7284
+ '/api/v1/{region}/bean/prices/bulk': {
7285
+ post: {
7286
+ req: PriceControllerBulkCreateData;
7287
+ res: {
7288
+ /**
7289
+ * Prices created successfully
7290
+ */
7291
+ 201: Array<PriceResponseDto>;
7292
+ };
7293
+ };
7294
+ };
5824
7295
  '/api/v1/{region}/bean/recurring-rules': {
5825
7296
  post: {
5826
7297
  req: RecurringRuleControllerCreateData;
@@ -6440,26 +7911,201 @@ type $OpenApiTs = {
6440
7911
  /**
6441
7912
  * Forbidden - insufficient permissions
6442
7913
  */
6443
- 403: unknown;
7914
+ 403: unknown;
7915
+ };
7916
+ };
7917
+ delete: {
7918
+ req: PropertyControllerDeleteData;
7919
+ res: {
7920
+ /**
7921
+ * Property deleted successfully
7922
+ */
7923
+ 204: void;
7924
+ /**
7925
+ * Unauthorized
7926
+ */
7927
+ 401: unknown;
7928
+ /**
7929
+ * Forbidden - insufficient permissions
7930
+ */
7931
+ 403: unknown;
7932
+ /**
7933
+ * Property not found
7934
+ */
7935
+ 404: unknown;
7936
+ };
7937
+ };
7938
+ };
7939
+ '/api/v1/{region}/bean/events': {
7940
+ post: {
7941
+ req: EventControllerCreateData;
7942
+ res: {
7943
+ /**
7944
+ * Life event created successfully
7945
+ */
7946
+ 201: EventResponseDto;
7947
+ /**
7948
+ * Life event already exists for this (userId, type, date) combination
7949
+ */
7950
+ 409: unknown;
7951
+ };
7952
+ };
7953
+ get: {
7954
+ req: EventControllerFindAllData;
7955
+ res: {
7956
+ /**
7957
+ * Life events retrieved successfully
7958
+ */
7959
+ 200: EventListResponseDto;
7960
+ };
7961
+ };
7962
+ };
7963
+ '/api/v1/{region}/bean/events/{id}': {
7964
+ get: {
7965
+ req: EventControllerFindOneData;
7966
+ res: {
7967
+ /**
7968
+ * Life event retrieved successfully
7969
+ */
7970
+ 200: EventResponseDto;
7971
+ /**
7972
+ * Life event not found
7973
+ */
7974
+ 404: unknown;
7975
+ };
7976
+ };
7977
+ put: {
7978
+ req: EventControllerUpdateData;
7979
+ res: {
7980
+ /**
7981
+ * Life event updated successfully
7982
+ */
7983
+ 200: EventResponseDto;
7984
+ /**
7985
+ * If-Match header is not a valid ISO 8601 date
7986
+ */
7987
+ 400: unknown;
7988
+ /**
7989
+ * Life event not found
7990
+ */
7991
+ 404: unknown;
7992
+ /**
7993
+ * Updated event conflicts with an existing (userId, type, date) combination
7994
+ */
7995
+ 409: unknown;
7996
+ /**
7997
+ * If-Match precondition failed (updatedAt mismatch)
7998
+ */
7999
+ 412: unknown;
8000
+ };
8001
+ };
8002
+ delete: {
8003
+ req: EventControllerDeleteData;
8004
+ res: {
8005
+ /**
8006
+ * Life event deleted successfully
8007
+ */
8008
+ 204: void;
8009
+ /**
8010
+ * Life event not found
8011
+ */
8012
+ 404: unknown;
8013
+ };
8014
+ };
8015
+ };
8016
+ '/api/v1/{region}/bean/events/{id}/slice': {
8017
+ get: {
8018
+ req: EventControllerGetSliceData;
8019
+ res: {
8020
+ /**
8021
+ * Time-series sliced by the life event range
8022
+ */
8023
+ 200: unknown;
8024
+ /**
8025
+ * accountPattern query param is empty
8026
+ */
8027
+ 400: unknown;
8028
+ /**
8029
+ * Life event not found
8030
+ */
8031
+ 404: unknown;
8032
+ };
8033
+ };
8034
+ };
8035
+ '/api/v1/{region}/bean/onboarding': {
8036
+ post: {
8037
+ req: OnboardingControllerBootstrapData;
8038
+ res: {
8039
+ /**
8040
+ * Onboarding bootstrap result.
8041
+ */
8042
+ 201: unknown;
8043
+ /**
8044
+ * Invalid region/account path/duplicate paths.
8045
+ */
8046
+ 422: unknown;
8047
+ };
8048
+ };
8049
+ };
8050
+ '/api/v1/{region}/bean/reconciliations': {
8051
+ post: {
8052
+ req: ReconciliationControllerComputeData;
8053
+ res: {
8054
+ /**
8055
+ * Reconciliation preview
8056
+ */
8057
+ 200: ReconciliationComputeResultDto;
8058
+ /**
8059
+ * Account not found
8060
+ */
8061
+ 404: unknown;
8062
+ };
8063
+ };
8064
+ };
8065
+ '/api/v1/{region}/bean/reconciliations/assert': {
8066
+ post: {
8067
+ req: ReconciliationControllerAssertData;
8068
+ res: {
8069
+ /**
8070
+ * Balance assertion recorded
8071
+ */
8072
+ 201: ReconciliationRecordDto;
8073
+ /**
8074
+ * Account not found
8075
+ */
8076
+ 404: unknown;
6444
8077
  };
6445
8078
  };
6446
- delete: {
6447
- req: PropertyControllerDeleteData;
8079
+ };
8080
+ '/api/v1/{region}/bean/reconciliations/pad': {
8081
+ post: {
8082
+ req: ReconciliationControllerPadData;
6448
8083
  res: {
6449
8084
  /**
6450
- * Property deleted successfully
8085
+ * Pad adjusting entry generated
6451
8086
  */
6452
- 204: void;
8087
+ 201: PadResultDto;
6453
8088
  /**
6454
- * Unauthorized
8089
+ * Book already within tolerance — no pad needed
6455
8090
  */
6456
- 401: unknown;
8091
+ 400: unknown;
6457
8092
  /**
6458
- * Forbidden - insufficient permissions
8093
+ * Account not found
6459
8094
  */
6460
- 403: unknown;
8095
+ 404: unknown;
8096
+ };
8097
+ };
8098
+ };
8099
+ '/api/v1/{region}/bean/accounts/{accountId}/reconciliations': {
8100
+ get: {
8101
+ req: ReconciliationControllerHistoryData;
8102
+ res: {
6461
8103
  /**
6462
- * Property not found
8104
+ * Reconciliation history
8105
+ */
8106
+ 200: Array<ReconciliationRecordDto>;
8107
+ /**
8108
+ * Account not found
6463
8109
  */
6464
8110
  404: unknown;
6465
8111
  };
@@ -6615,143 +8261,145 @@ type $OpenApiTs = {
6615
8261
  };
6616
8262
  };
6617
8263
  };
6618
- '/api/v1/bean/platforms': {
6619
- get: {
8264
+ '/api/v1/{region}/bean/import/provider/{providerName}/sync': {
8265
+ post: {
8266
+ req: ProviderSyncControllerSyncData;
6620
8267
  res: {
6621
8268
  /**
6622
- * List of platforms with binding and account counts
8269
+ * Sync completed successfully
6623
8270
  */
6624
- 200: unknown;
6625
- };
6626
- };
6627
- post: {
6628
- req: PlatformControllerCreateData;
6629
- res: {
8271
+ 200: ProviderSyncResponseDto;
6630
8272
  /**
6631
- * Platform created successfully
8273
+ * Invalid request data
6632
8274
  */
6633
- 201: unknown;
8275
+ 400: unknown;
6634
8276
  /**
6635
- * Platform already exists
8277
+ * Missing or invalid authentication
6636
8278
  */
6637
- 409: unknown;
8279
+ 401: unknown;
8280
+ /**
8281
+ * Provider not supported
8282
+ */
8283
+ 404: unknown;
6638
8284
  };
6639
8285
  };
6640
8286
  };
6641
- '/api/v1/bean/platforms/list': {
8287
+ '/api/v1/{region}/bean/import/provider/supported': {
6642
8288
  get: {
8289
+ req: ProviderSyncControllerGetSupportedProvidersData;
6643
8290
  res: {
6644
8291
  /**
6645
- * List of platforms with user binding status
8292
+ * List of supported providers
6646
8293
  */
6647
- 200: unknown;
8294
+ 200: SupportedProvidersResponseDto;
8295
+ /**
8296
+ * Missing or invalid authentication
8297
+ */
8298
+ 401: unknown;
6648
8299
  };
6649
8300
  };
6650
8301
  };
6651
- '/api/v1/bean/platforms/match': {
8302
+ '/api/v1/{region}/bean/import/provider/{providerName}/supported': {
6652
8303
  get: {
6653
- req: PlatformControllerMatchPlatformsData;
8304
+ req: ProviderSyncControllerIsProviderSupportedData;
6654
8305
  res: {
6655
8306
  /**
6656
- * List of matching platforms with suggested segment names
8307
+ * Provider support status
6657
8308
  */
6658
8309
  200: unknown;
8310
+ /**
8311
+ * Missing or invalid authentication
8312
+ */
8313
+ 401: unknown;
6659
8314
  };
6660
8315
  };
6661
8316
  };
6662
- '/api/v1/bean/platforms/{id}': {
6663
- put: {
6664
- req: PlatformControllerUpdateData;
8317
+ '/api/v1/{region}/bean/external-account-links': {
8318
+ post: {
8319
+ req: ExternalAccountLinkControllerCreateData;
6665
8320
  res: {
6666
8321
  /**
6667
- * Platform updated successfully
8322
+ * Link created.
6668
8323
  */
6669
- 200: unknown;
8324
+ 201: ExternalAccountLinkResponseDto;
6670
8325
  /**
6671
- * Platform not found
8326
+ * beanAccountId not owned, or an active link already exists.
6672
8327
  */
6673
- 404: unknown;
8328
+ 422: unknown;
6674
8329
  };
6675
8330
  };
6676
- delete: {
6677
- req: PlatformControllerDeleteData;
8331
+ get: {
8332
+ req: ExternalAccountLinkControllerFindAllData;
6678
8333
  res: {
6679
8334
  /**
6680
- * Platform deleted successfully
6681
- */
6682
- 204: void;
6683
- /**
6684
- * Platform not found
8335
+ * Links retrieved.
6685
8336
  */
6686
- 404: unknown;
8337
+ 200: ExternalAccountLinkListResponseDto;
6687
8338
  };
6688
8339
  };
6689
8340
  };
6690
- '/api/v1/{region}/bean/import/provider/{providerName}/sync': {
6691
- post: {
6692
- req: ProviderSyncControllerSyncData;
8341
+ '/api/v1/{region}/bean/external-account-links/{id}': {
8342
+ get: {
8343
+ req: ExternalAccountLinkControllerFindOneData;
6693
8344
  res: {
6694
8345
  /**
6695
- * Sync completed successfully
6696
- */
6697
- 200: ProviderSyncResponseDto;
6698
- /**
6699
- * Invalid request data
8346
+ * Link retrieved.
6700
8347
  */
6701
- 400: unknown;
8348
+ 200: ExternalAccountLinkResponseDto;
6702
8349
  /**
6703
- * Missing or invalid authentication
8350
+ * Link not found or not owned by the user.
6704
8351
  */
6705
- 401: unknown;
8352
+ 422: unknown;
8353
+ };
8354
+ };
8355
+ delete: {
8356
+ req: ExternalAccountLinkControllerRemoveData;
8357
+ res: {
6706
8358
  /**
6707
- * Provider not supported
8359
+ * Link soft-deleted; historical transactions are unaffected.
6708
8360
  */
6709
- 404: unknown;
8361
+ 204: void;
6710
8362
  };
6711
8363
  };
6712
8364
  };
6713
- '/api/v1/{region}/bean/import/provider/supported': {
6714
- get: {
6715
- req: ProviderSyncControllerGetSupportedProvidersData;
8365
+ '/api/v1/{region}/bean/import/parser-telemetry': {
8366
+ post: {
8367
+ req: TelemetryControllerReportTelemetryData;
6716
8368
  res: {
6717
8369
  /**
6718
- * List of supported providers
8370
+ * Telemetry report received
6719
8371
  */
6720
- 200: SupportedProvidersResponseDto;
8372
+ 200: unknown;
6721
8373
  /**
6722
- * Missing or invalid authentication
8374
+ * Unauthorized
6723
8375
  */
6724
8376
  401: unknown;
6725
8377
  };
6726
8378
  };
6727
8379
  };
6728
- '/api/v1/{region}/bean/import/provider/{providerName}/supported': {
6729
- get: {
6730
- req: ProviderSyncControllerIsProviderSupportedData;
8380
+ '/api/v1/{region}/bean/import/parser-coverage-miss': {
8381
+ post: {
8382
+ req: TelemetryControllerReportCoverageMissData;
6731
8383
  res: {
6732
8384
  /**
6733
- * Provider support status
8385
+ * Coverage miss report received
6734
8386
  */
6735
8387
  200: unknown;
6736
8388
  /**
6737
- * Missing or invalid authentication
8389
+ * Unauthorized
6738
8390
  */
6739
8391
  401: unknown;
6740
8392
  };
6741
8393
  };
6742
8394
  };
6743
- '/api/v1/{region}/bean/import/parser-telemetry': {
6744
- post: {
6745
- req: TelemetryControllerReportTelemetryData;
8395
+ '/api/v1/{region}/bean/import/parser-coverage-metrics': {
8396
+ get: {
8397
+ req: TelemetryControllerGetCoverageMetricsData;
6746
8398
  res: {
6747
8399
  /**
6748
- * Telemetry report received
8400
+ * Coverage metrics
6749
8401
  */
6750
8402
  200: unknown;
6751
- /**
6752
- * Unauthorized
6753
- */
6754
- 401: unknown;
6755
8403
  };
6756
8404
  };
6757
8405
  };
@@ -6802,6 +8450,78 @@ type $OpenApiTs = {
6802
8450
  };
6803
8451
  };
6804
8452
  };
8453
+ '/api/v1/bean/platforms': {
8454
+ get: {
8455
+ res: {
8456
+ /**
8457
+ * List of platforms with binding and account counts
8458
+ */
8459
+ 200: unknown;
8460
+ };
8461
+ };
8462
+ post: {
8463
+ req: PlatformControllerCreateData;
8464
+ res: {
8465
+ /**
8466
+ * Platform created successfully
8467
+ */
8468
+ 201: unknown;
8469
+ /**
8470
+ * Platform already exists
8471
+ */
8472
+ 409: unknown;
8473
+ };
8474
+ };
8475
+ };
8476
+ '/api/v1/bean/platforms/list': {
8477
+ get: {
8478
+ res: {
8479
+ /**
8480
+ * List of platforms with user binding status
8481
+ */
8482
+ 200: Array<PlatformListItemDto>;
8483
+ };
8484
+ };
8485
+ };
8486
+ '/api/v1/bean/platforms/match': {
8487
+ get: {
8488
+ req: PlatformControllerMatchPlatformsData;
8489
+ res: {
8490
+ /**
8491
+ * Matching platforms with overall match type and truncation flag
8492
+ */
8493
+ 200: PlatformMatchResponseDto;
8494
+ };
8495
+ };
8496
+ };
8497
+ '/api/v1/bean/platforms/{id}': {
8498
+ put: {
8499
+ req: PlatformControllerUpdateData;
8500
+ res: {
8501
+ /**
8502
+ * Platform updated successfully
8503
+ */
8504
+ 200: unknown;
8505
+ /**
8506
+ * Platform not found
8507
+ */
8508
+ 404: unknown;
8509
+ };
8510
+ };
8511
+ delete: {
8512
+ req: PlatformControllerDeleteData;
8513
+ res: {
8514
+ /**
8515
+ * Platform deleted successfully
8516
+ */
8517
+ 204: void;
8518
+ /**
8519
+ * Platform not found
8520
+ */
8521
+ 404: unknown;
8522
+ };
8523
+ };
8524
+ };
6805
8525
  '/api/v1/{region}/dashboard/net-worth': {
6806
8526
  get: {
6807
8527
  req: DashboardControllerGetNetWorthData;
@@ -6824,7 +8544,7 @@ type $OpenApiTs = {
6824
8544
  /**
6825
8545
  * Accounts retrieved successfully. Response type depends on groupBy parameter.
6826
8546
  */
6827
- 200: AccountsResponseDto | AssetClassAccountsResponseDto;
8547
+ 200: AccountsResponseDto | AssetClassAccountsResponseDto | HoldingAssetClassCrossAccountResponseDto;
6828
8548
  /**
6829
8549
  * User not authenticated
6830
8550
  */
@@ -6851,6 +8571,44 @@ type $OpenApiTs = {
6851
8571
  };
6852
8572
  };
6853
8573
  };
8574
+ '/api/v1/{region}/dashboard/expenses': {
8575
+ get: {
8576
+ req: DashboardControllerGetExpensesData;
8577
+ res: {
8578
+ /**
8579
+ * Expenses retrieved successfully
8580
+ */
8581
+ 200: ExpensesByCategoryResponseDto;
8582
+ /**
8583
+ * Invalid groupBy or period
8584
+ */
8585
+ 400: unknown;
8586
+ /**
8587
+ * User not authenticated
8588
+ */
8589
+ 401: unknown;
8590
+ };
8591
+ };
8592
+ };
8593
+ '/api/v1/{region}/investment/holdings/pnl': {
8594
+ get: {
8595
+ req: HoldingPnlControllerGetHoldingPnlData;
8596
+ res: {
8597
+ /**
8598
+ * Holding P&L retrieved successfully
8599
+ */
8600
+ 200: HoldingPnlResponseDto;
8601
+ /**
8602
+ * Invalid asOf format/value/future date, invalid accountId format, or unsupported method
8603
+ */
8604
+ 400: unknown;
8605
+ /**
8606
+ * User not authenticated
8607
+ */
8608
+ 401: unknown;
8609
+ };
8610
+ };
8611
+ };
6854
8612
  '/api/v1/{region}/reporting/portfolio/trends': {
6855
8613
  get: {
6856
8614
  req: ReportingControllerGetPortfolioTrendsData;
@@ -6866,6 +8624,21 @@ type $OpenApiTs = {
6866
8624
  };
6867
8625
  };
6868
8626
  };
8627
+ '/api/v1/{region}/reporting/cash-flow/trends': {
8628
+ get: {
8629
+ req: ReportingControllerGetCashFlowTrendsData;
8630
+ res: {
8631
+ /**
8632
+ * Cash-flow trends retrieved successfully
8633
+ */
8634
+ 200: CashFlowTrendsResponseDto;
8635
+ /**
8636
+ * User not authenticated
8637
+ */
8638
+ 401: unknown;
8639
+ };
8640
+ };
8641
+ };
6869
8642
  '/api/v1/{region}/reporting/snapshots/generate': {
6870
8643
  post: {
6871
8644
  req: ReportingControllerGenerateSnapshotData;
@@ -7097,7 +8870,7 @@ declare class BeanAccountsService {
7097
8870
  * @param data.type Filter by account type
7098
8871
  * @param data.status Filter by status
7099
8872
  * @param data.isCustom Filter by custom (user-created) accounts only
7100
- * @param data.search Search term for path or i18nKey
8873
+ * @param data.search Search term for account path
7101
8874
  * @param data.limit Maximum number of results
7102
8875
  * @param data.offset Number of results to skip
7103
8876
  * @returns AccountListResponseDto Accounts retrieved successfully
@@ -7157,6 +8930,17 @@ declare class BeanAccountsService {
7157
8930
  * @throws ApiError
7158
8931
  */
7159
8932
  static accountControllerReopen(data: AccountControllerReopenData): CancelablePromise<AccountControllerReopenResponse>;
8933
+ /**
8934
+ * Post an opening-balance transaction
8935
+ * Posts a double-entry opening-balance transaction against Equity:Opening-Balances for an existing Assets/Liabilities account. At most one active opening balance per account.
8936
+ * @param data The data for the request.
8937
+ * @param data.id Account UUID
8938
+ * @param data.region Region code for tenant context
8939
+ * @param data.requestBody
8940
+ * @returns OpeningBalanceResultDto Opening-balance transaction created
8941
+ * @throws ApiError
8942
+ */
8943
+ static accountControllerAddOpeningBalance(data: AccountControllerAddOpeningBalanceData): CancelablePromise<AccountControllerAddOpeningBalanceResponse>;
7160
8944
  }
7161
8945
  declare class BeanTransactionsService {
7162
8946
  /**
@@ -7182,6 +8966,7 @@ declare class BeanTransactionsService {
7182
8966
  * @param data.status Filter by transaction status
7183
8967
  * @param data.search Search in narration and payee fields (max 200 chars)
7184
8968
  * @param data.accountId Filter by account ID (transactions with postings to this account)
8969
+ * @param data.category Filter by ADR-0075 functional category (Group segment); matches any posting to an Expenses/Income account whose derived Group segment equals this value
7185
8970
  * @returns TransactionListResponseDto Transaction list
7186
8971
  * @throws ApiError
7187
8972
  */
@@ -7197,6 +8982,17 @@ declare class BeanTransactionsService {
7197
8982
  * @throws ApiError
7198
8983
  */
7199
8984
  static transactionControllerCreateBatch(data: TransactionControllerCreateBatchData): CancelablePromise<TransactionControllerCreateBatchResponse>;
8985
+ /**
8986
+ * Correct (supersede) a transaction
8987
+ * Atomically voids the original (SUPERSEDED) and creates a replacement through the full validation pipeline.
8988
+ * @param data The data for the request.
8989
+ * @param data.id Original transaction ID to correct
8990
+ * @param data.region Region code for tenant context
8991
+ * @param data.requestBody
8992
+ * @returns TransactionDetailDto Corrected transaction created
8993
+ * @throws ApiError
8994
+ */
8995
+ static transactionControllerCorrect(data: TransactionControllerCorrectData): CancelablePromise<TransactionControllerCorrectResponse>;
7200
8996
  /**
7201
8997
  * Suggest transaction tags
7202
8998
  * Returns distinct tags from the user ACTIVE transactions, sorted by usage, for autocomplete. Optional q performs a case-insensitive prefix match.
@@ -7246,7 +9042,7 @@ declare class BeanBalancesService {
7246
9042
  * Query account balance
7247
9043
  * Calculate account balance at a specific date for a single currency
7248
9044
  * @param data The data for the request.
7249
- * @param data.account Account name (e.g., "Assets:Bank:Checking")
9045
+ * @param data.account Account name (e.g., "Assets:Checking")
7250
9046
  * @param data.region Region code for tenant context
7251
9047
  * @param data.date Date to calculate balance at (ISO 8601 format)
7252
9048
  * @param data.currency Currency to query (e.g., "USD", "CNY")
@@ -7363,7 +9159,7 @@ declare class ProviderSyncService {
7363
9159
  *
7364
9160
  * @param data The data for the request.
7365
9161
  * @param data.providerName Provider name
7366
- * @param data.region Region code
9162
+ * @param data.region Region code for tenant context
7367
9163
  * @param data.requestBody
7368
9164
  * @returns ProviderSyncResponseDto Sync completed successfully
7369
9165
  * @throws ApiError
@@ -7476,4 +9272,4 @@ type OpenAPIConfig = {
7476
9272
  };
7477
9273
  declare const OpenAPI: OpenAPIConfig;
7478
9274
 
7479
- export { type $OpenApiTs, type AccountControllerCloseData, type AccountControllerCloseResponse, type AccountControllerCreateData, type AccountControllerCreateResponse, type AccountControllerDeleteData, type AccountControllerDeleteResponse, type AccountControllerFindAllData, type AccountControllerFindAllResponse, type AccountControllerFindOneData, type AccountControllerFindOneResponse, type AccountControllerReopenData, type AccountControllerReopenResponse, type AccountControllerUpdateData, type AccountControllerUpdateResponse, type AccountExchangeRateWarningDto, type AccountItemDto, type AccountItemWithAssetClassDto, type AccountListResponseDto, type AccountResponseDto, type AccountStandardListResponseDto, type AccountStandardResponseDto, type AccountStandardsControllerGetRegionsData, type AccountStandardsControllerGetRegionsResponse, type AccountStandardsControllerGetTemplateMetadataData, type AccountStandardsControllerGetTemplateMetadataResponse, type AccountStandardsControllerGetTemplatesData, type AccountStandardsControllerGetTemplatesResponse, type AccountsResponseDto, type AccountsSummaryDto, type AmountRangeDto, type AnonymousLoginDto, type ApiKeysControllerCreateApiKeyResponse, type ApiProblemResponseDto, type AssetClassAccountsResponseDto, type AssetClassGroupDto, type AssetClassSummaryDto, type AuthControllerAccessTokenLoginData, type AuthControllerAccessTokenLoginResponse, type BackfillSnapshotsBody, type BackfillSnapshotsResponse, type BalanceByCurrencyDto, type BalanceControllerGetBalanceData, type BalanceControllerGetBalanceResponse, type BalanceControllerGetMultiCurrencyBalanceData, type BalanceControllerGetMultiCurrencyBalanceResponse, type BalanceResponseDto, type BatchCreateTransactionDto, type BatchResolveDto, type BatchResolveResultDto, type BatchTransactionErrorDto, type BatchTransactionResponseDto, BeanAccountsService, BeanBalancesService, BeanCommoditiesService, BeanTransactionsService, type BulkCreateRulesDto, type BulkCreateRulesResponseDto, type CacheControllerFlushCacheResponse, type CashFlowByCurrencyDto, type CashFlowResponseDto, type CloseAccountDto, type CommodityControllerBulkCreateData, type CommodityControllerBulkCreateResponse, type CommodityControllerCreateData, type CommodityControllerCreateResponse, type CommodityControllerDeleteData, type CommodityControllerDeleteResponse, type CommodityControllerFindAllData, type CommodityControllerFindAllResponse, type CommodityControllerFindOneData, type CommodityControllerFindOneResponse, type CommodityControllerGetOrCreateData, type CommodityControllerGetOrCreateResponse, type CommodityControllerUpdateData, type CommodityControllerUpdateResponse, type CommodityListResponseDto, type CommodityResponseDto, type ConfirmMatchDto, type ConvertedCashFlowDto, type ConvertedNetWorthDto, type CreateAccountDto, type CreateCommodityDto, type CreatePayeeDto, type CreatePayeeProfileDto, type CreatePlatformDto, type CreatePostingDto, type CreateRecurringRuleDto, type CreateRuleFromTransactionDto, type CreateTransactionDto, type CreateTransactionRuleDto, type CurrencyBalanceDto, type DashboardControllerGetAccountsData, type DashboardControllerGetAccountsResponse, type DashboardControllerGetCashFlowData, type DashboardControllerGetCashFlowResponse, type DashboardControllerGetNetWorthData, type DashboardControllerGetNetWorthResponse, type DecisionOptionDto, type DeleteOwnUserDto, type EnterNowDto, type ExchangeRateControllerGetExchangeRateData, type ExchangeRateControllerGetExchangeRateResponse, type ExchangeRateWarningDto, type ExpectedTransactionControllerConfirmMatchData, type ExpectedTransactionControllerConfirmMatchResponse, type ExpectedTransactionControllerEnterNowData, type ExpectedTransactionControllerEnterNowResponse, type ExpectedTransactionControllerFindAllData, type ExpectedTransactionControllerFindAllResponse, type ExpectedTransactionControllerFindOneData, type ExpectedTransactionControllerFindOneResponse, type ExpectedTransactionControllerFindOverdueData, type ExpectedTransactionControllerFindOverdueResponse, type ExpectedTransactionControllerSkipData, type ExpectedTransactionControllerSkipResponse, type ExpectedTransactionControllerUndoSkipData, type ExpectedTransactionControllerUndoSkipResponse, type ExpectedTransactionControllerUnmatchData, type ExpectedTransactionControllerUnmatchResponse, type ExpectedTransactionListResponseDto, type ExpectedTransactionResponseDto, type ExpectedTransactionRuleDto, type ExportControllerExportBeancountResponse, type ExportRulesResponseDto, type FileImportControllerIdentifyFileData, type FileImportControllerIdentifyFileResponse, type FileImportControllerImportBeancountData, type FileImportControllerImportBeancountResponse, type FileImportControllerImportFileData, type FileImportControllerImportFileResponse, type FileImportDto, type ForecastControllerGetForecastData, type ForecastControllerGetForecastResponse, type ForecastItemDto, type ForecastResponseDto, type GenerateSnapshotBody, type GenerateSnapshotResponse, type HealthControllerCheckDatabaseResponse, type HealthControllerCheckOpenBbResponse, type HealthControllerCheckRedisResponse, type HealthControllerGetCircuitBreakersHealthResponse, type HealthControllerGetHealthResponse, type HealthControllerGetMetricsResponse, type HealthControllerResetCircuitBreakerData, type HealthControllerResetCircuitBreakerResponse, HealthService, type IdentifyResultDto, type ImportErrorDto, type ImportResultDto, type ImporterConfigControllerGetConfigData, type ImporterConfigControllerGetConfigResponse, type ImporterConfigControllerResetConfigData, type ImporterConfigControllerResetConfigResponse, type ImporterConfigControllerUpdateConfigData, type ImporterConfigControllerUpdateConfigResponse, type ImporterConfigDataDto, type ImporterConfigDto, type InfoControllerGetInfoResponse, type MapperDefaultsDto, type MonthlyForecastDto, type MultiCurrencyBalanceResponseDto, type MultiCurrencyPointDto, type NetWorthByCurrencyDto, type NetWorthResponseDto, type NlpAccountConfirmationDataDto, type NlpAlternativePayeeDto, type NlpControllerClearSessionData, type NlpControllerClearSessionResponse, type NlpControllerGetSessionData, type NlpControllerGetSessionResponse, type NlpControllerProcessNaturalLanguageData, type NlpControllerProcessNaturalLanguageResponse, type NlpDefaultAccountsDto, type NlpDuplicateConfirmationDataDto, type NlpParsedDataDto, type NlpPayeeConfirmationDataDto, type NlpResponseDto, type NlpRuleConfirmationDataDto, type NlpSimilarityDto, type NlpSourceTransactionDto, type NlpSuggestedAccountDto, type NlpSuggestedAccountsDto, type NlpSuggestedPayeeDto, type NlpTargetTransactionDto, type NlpTransactionInfoDto, OpenAPI, type OpenAPIConfig, type ParserTelemetryReportDto, type PayeeAutocompleteResponseDto, type PayeeControllerAutocompleteData, type PayeeControllerAutocompleteResponse, type PayeeControllerCreateData, type PayeeControllerCreateResponse, type PayeeControllerDeleteData, type PayeeControllerDeleteResponse, type PayeeControllerFindAllData, type PayeeControllerFindAllResponse, type PayeeControllerFindOneData, type PayeeControllerFindOneResponse, type PayeeControllerGetTopPayeesData, type PayeeControllerGetTopPayeesResponse, type PayeeControllerUpdateData, type PayeeControllerUpdateResponse, type PayeeListResponseDto, type PayeeProfileAdminControllerCreateData, type PayeeProfileAdminControllerCreateResponse, type PayeeProfileAdminControllerDeleteData, type PayeeProfileAdminControllerDeleteResponse, type PayeeProfileAdminControllerFindAllData, type PayeeProfileAdminControllerFindAllResponse, type PayeeProfileAdminControllerFindOneData, type PayeeProfileAdminControllerFindOneResponse, type PayeeProfileAdminControllerUnverifyData, type PayeeProfileAdminControllerUnverifyResponse, type PayeeProfileAdminControllerUpdateData, type PayeeProfileAdminControllerUpdateResponse, type PayeeProfileAdminControllerVerifyData, type PayeeProfileAdminControllerVerifyResponse, type PayeeProfileListResponseDto, type PayeeProfileResponseDto, type PayeeResponseDto, type PayeeStatsResponseDto, type PlatformControllerCreateData, type PlatformControllerCreateResponse, type PlatformControllerDeleteData, type PlatformControllerDeleteResponse, type PlatformControllerFindAllResponse, type PlatformControllerGetPlatformListResponse, type PlatformControllerMatchPlatformsData, type PlatformControllerMatchPlatformsResponse, type PlatformControllerUpdateData, type PlatformControllerUpdateResponse, type PlatformGroupDto, type PortfolioTrendsResponseDto, type PostingDetailDto, type PostingResponseDto, type ProcessNlpDto, type PropertyControllerDeleteData, type PropertyControllerDeleteResponse, type PropertyControllerGetAllResponse, type PropertyControllerGetByKeyData, type PropertyControllerGetByKeyResponse, type PropertyControllerUpdateData, type PropertyControllerUpdateResponse, type ProviderSyncConfigDto, type ProviderSyncControllerGetSupportedProvidersData, type ProviderSyncControllerGetSupportedProvidersResponse, type ProviderSyncControllerIsProviderSupportedData, type ProviderSyncControllerIsProviderSupportedResponse, type ProviderSyncControllerSyncData, type ProviderSyncControllerSyncResponse, type ProviderSyncDto, type ProviderSyncResponseDto, ProviderSyncService, type RecurringMatchInfoDto, type RecurringRuleControllerCreateData, type RecurringRuleControllerCreateFromTransactionData, type RecurringRuleControllerCreateFromTransactionResponse, type RecurringRuleControllerCreateResponse, type RecurringRuleControllerDeleteData, type RecurringRuleControllerDeleteResponse, type RecurringRuleControllerFindAllData, type RecurringRuleControllerFindAllResponse, type RecurringRuleControllerFindOneData, type RecurringRuleControllerFindOneResponse, type RecurringRuleControllerGetWithStatsData, type RecurringRuleControllerGetWithStatsResponse, type RecurringRuleControllerUpdateData, type RecurringRuleControllerUpdateResponse, type RecurringRuleResponseDto, type RecurringRuleWithStatsResponseDto, type RecurringSuggestionDto, type RegionConfigDto, type RegionInfoDto, type RegionsMetadataResponseDto, type ReopenAccountDto, type ReportingControllerBackfillSnapshotsData, type ReportingControllerBackfillSnapshotsResponse, type ReportingControllerGenerateSnapshotData, type ReportingControllerGenerateSnapshotResponse, type ReportingControllerGetPortfolioTrendsData, type ReportingControllerGetPortfolioTrendsResponse, type ResolveResultDto, type ResolveReviewDto, type ReviewControllerBatchResolveData, type ReviewControllerBatchResolveResponse, type ReviewControllerFindAllData, type ReviewControllerFindAllResponse, type ReviewControllerFindOneData, type ReviewControllerFindOneResponse, type ReviewControllerGetStatsData, type ReviewControllerGetStatsResponse, type ReviewControllerResolveData, type ReviewControllerResolveResponse, type ReviewControllerUndoData, type ReviewControllerUndoResponse, type ReviewDetailDto, type ReviewItemPreviewDto, type ReviewListResponseDto, type ReviewStatsDto, type ReviewSummaryDto, type RuleStatisticsResponseDto, type SignupDto, type SupportedProvidersResponseDto, type TagSuggestionDto, type TagSuggestionsResponseDto, type TelemetryControllerReportTelemetryData, type TelemetryControllerReportTelemetryResponse, type TemplateMetadataDto, type TemplateMetadataResponseDto, type TestRuleDto, type TestRuleResponseDto, type TimeSeriesPointDto, type TransactionControllerCreateBatchData, type TransactionControllerCreateBatchResponse, type TransactionControllerCreateData, type TransactionControllerCreateResponse, type TransactionControllerDeleteData, type TransactionControllerDeleteResponse, type TransactionControllerGetDetailData, type TransactionControllerGetDetailResponse, type TransactionControllerListData, type TransactionControllerListResponse, type TransactionControllerSuggestTagsData, type TransactionControllerSuggestTagsResponse, type TransactionControllerUpdateData, type TransactionControllerUpdateResponse, type TransactionDetailDto, type TransactionListResponseDto, type TransactionResponseDto, type TransactionRuleControllerBulkCreateData, type TransactionRuleControllerBulkCreateResponse, type TransactionRuleControllerCreateData, type TransactionRuleControllerCreateResponse, type TransactionRuleControllerDeleteData, type TransactionRuleControllerDeleteResponse, type TransactionRuleControllerExportData, type TransactionRuleControllerExportResponse, type TransactionRuleControllerGetDetailData, type TransactionRuleControllerGetDetailResponse, type TransactionRuleControllerGetStatisticsData, type TransactionRuleControllerGetStatisticsResponse, type TransactionRuleControllerListData, type TransactionRuleControllerListResponse, type TransactionRuleControllerTestData, type TransactionRuleControllerTestResponse, type TransactionRuleControllerUpdateData, type TransactionRuleControllerUpdateResponse, type TransactionRuleControllerValidateData, type TransactionRuleControllerValidateResponse, type TransactionRuleListResponseDto, type TransactionRuleResponseDto, type TransactionSummaryDto, type TrendSummaryDto, type UndoResultDto, type UpdateAccountDto, type UpdateCommodityDto, type UpdateConfigDataDto, type UpdateImporterConfigDto, type UpdateMapperDefaultsDto, type UpdatePayeeDto, type UpdatePayeeProfileDto, type UpdatePlatformDto, type UpdatePropertyDto, type UpdateRecurringRuleDto, type UpdateTransactionDto, type UpdateTransactionRuleDto, type UpdateUserSettingDto, type UserControllerDeleteOwnUserData, type UserControllerDeleteOwnUserResponse, type UserControllerDeleteUserData, type UserControllerDeleteUserResponse, type UserControllerGetAllUserSettingsByPageData, type UserControllerGetAllUserSettingsByPageResponse, type UserControllerGetAssetLiabilitySummaryResponse, type UserControllerGetUserData, type UserControllerGetUserInfoData, type UserControllerGetUserInfoResponse, type UserControllerGetUserResponse, type UserControllerSignupUserData, type UserControllerSignupUserResponse, type UserControllerUpdateUserSettingData, type UserControllerUpdateUserSettingResponse, type ValidateRuleDto, type ValidateRuleResponseDto, type VersionedConfigDto, type action, type assetClass, type assetSubType, type bookingMethod, type branchType, type category, type colorScheme, type confidenceLevel, type conflictStrategy, type dataSource, type equitySubType, type flag, type flag2, type frequency, type importerId, type intent, type investmentAction, type learningSource, type liabilitySubType, type matchLogic, type paymentSource, type period, type source, type sourceType, type status, type status2, type status3, type status4, type suggestedFrequency, type type, type type2, type type3, type viewMode };
9275
+ export { type $OpenApiTs, type AccountControllerAddOpeningBalanceData, type AccountControllerAddOpeningBalanceResponse, type AccountControllerCloseData, type AccountControllerCloseResponse, type AccountControllerCreateData, type AccountControllerCreateResponse, type AccountControllerDeleteData, type AccountControllerDeleteResponse, type AccountControllerFindAllData, type AccountControllerFindAllResponse, type AccountControllerFindOneData, type AccountControllerFindOneResponse, type AccountControllerReopenData, type AccountControllerReopenResponse, type AccountControllerUpdateData, type AccountControllerUpdateResponse, type AccountExchangeRateWarningDto, type AccountItemDto, type AccountItemWithAssetClassDto, type AccountListResponseDto, type AccountResponseDto, type AccountStandardListResponseDto, type AccountStandardResponseDto, type AccountStandardsControllerGetRegionsData, type AccountStandardsControllerGetRegionsResponse, type AccountStandardsControllerGetTemplateMetadataData, type AccountStandardsControllerGetTemplateMetadataResponse, type AccountStandardsControllerGetTemplatesData, type AccountStandardsControllerGetTemplatesResponse, type AccountsResponseDto, type AccountsSummaryDto, type ActualBalanceDto, type AmountDto, type AmountRangeDto, type AnonymousLoginDto, type ApiKeysControllerCreateApiKeyResponse, type ApiProblemResponseDto, type AssertReconciliationDto, type AssetClassAccountsResponseDto, type AssetClassGroupDto, type AssetClassSummaryDto, type AuthControllerAccessTokenLoginData, type AuthControllerAccessTokenLoginResponse, type BackfillSnapshotsBody, type BackfillSnapshotsResponse, type BalanceByCurrencyDto, type BalanceControllerGetBalanceData, type BalanceControllerGetBalanceResponse, type BalanceControllerGetMultiCurrencyBalanceData, type BalanceControllerGetMultiCurrencyBalanceResponse, type BalanceResponseDto, type BatchCreateTransactionDto, type BatchResolveDto, type BatchResolveResultDto, type BatchTransactionErrorDto, type BatchTransactionResponseDto, BeanAccountsService, BeanBalancesService, BeanCommoditiesService, BeanTransactionsService, type BulkCreateRulesDto, type BulkCreateRulesResponseDto, type CacheControllerFlushCacheResponse, type CashFlowByCurrencyDto, type CashFlowPointDto, type CashFlowResponseDto, type CashFlowTrendSummaryDto, type CashFlowTrendsResponseDto, type CategoryGroupDto, type CloseAccountDto, type CommodityControllerBulkCreateData, type CommodityControllerBulkCreateResponse, type CommodityControllerCreateData, type CommodityControllerCreateResponse, type CommodityControllerDeleteData, type CommodityControllerDeleteResponse, type CommodityControllerFindAllData, type CommodityControllerFindAllResponse, type CommodityControllerFindOneData, type CommodityControllerFindOneResponse, type CommodityControllerGetOrCreateData, type CommodityControllerGetOrCreateResponse, type CommodityControllerUpdateData, type CommodityControllerUpdateResponse, type CommodityListResponseDto, type CommodityResponseDto, type ComputeReconciliationDto, type ConfirmMatchDto, type ConvertedCashFlowDto, type ConvertedNetWorthDto, type CorrectTransactionDto, type CostDetailDto, type CostSpecDto, type CreateAccountDto, type CreateBeanEventDto, type CreateBeanPriceDto, type CreateCommodityDto, type CreateExternalAccountLinkDto, type CreateOpeningBalanceDto, type CreatePayeeDto, type CreatePayeeProfileDto, type CreatePlatformDto, type CreatePostingDto, type CreateRecurringRuleDto, type CreateRuleFromTransactionDto, type CreateTransactionDto, type CreateTransactionRuleDto, type CurrencyBalanceDto, type CurrentPriceDto, type DashboardControllerGetAccountsData, type DashboardControllerGetAccountsResponse, type DashboardControllerGetCashFlowData, type DashboardControllerGetCashFlowResponse, type DashboardControllerGetExpensesData, type DashboardControllerGetExpensesResponse, type DashboardControllerGetNetWorthData, type DashboardControllerGetNetWorthResponse, type DecisionOptionDto, type DeleteOwnUserDto, type EnterNowDto, type EventControllerCreateData, type EventControllerCreateResponse, type EventControllerDeleteData, type EventControllerDeleteResponse, type EventControllerFindAllData, type EventControllerFindAllResponse, type EventControllerFindOneData, type EventControllerFindOneResponse, type EventControllerGetSliceData, type EventControllerGetSliceResponse, type EventControllerUpdateData, type EventControllerUpdateResponse, type EventListResponseDto, type EventResponseDto, type ExchangeRateControllerGetExchangeRateData, type ExchangeRateControllerGetExchangeRateResponse, type ExchangeRateWarningDto, type ExpectedTransactionControllerConfirmMatchData, type ExpectedTransactionControllerConfirmMatchResponse, type ExpectedTransactionControllerEnterNowData, type ExpectedTransactionControllerEnterNowResponse, type ExpectedTransactionControllerFindAllData, type ExpectedTransactionControllerFindAllResponse, type ExpectedTransactionControllerFindOneData, type ExpectedTransactionControllerFindOneResponse, type ExpectedTransactionControllerFindOverdueData, type ExpectedTransactionControllerFindOverdueResponse, type ExpectedTransactionControllerSkipData, type ExpectedTransactionControllerSkipResponse, type ExpectedTransactionControllerUndoSkipData, type ExpectedTransactionControllerUndoSkipResponse, type ExpectedTransactionControllerUnmatchData, type ExpectedTransactionControllerUnmatchResponse, type ExpectedTransactionListResponseDto, type ExpectedTransactionResponseDto, type ExpectedTransactionRuleDto, type ExpensesByCategoryResponseDto, type ExpensesByCategorySummaryDto, type ExportControllerExportBeancountResponse, type ExportRulesResponseDto, type ExternalAccountLinkControllerCreateData, type ExternalAccountLinkControllerCreateResponse, type ExternalAccountLinkControllerFindAllData, type ExternalAccountLinkControllerFindAllResponse, type ExternalAccountLinkControllerFindOneData, type ExternalAccountLinkControllerFindOneResponse, type ExternalAccountLinkControllerRemoveData, type ExternalAccountLinkControllerRemoveResponse, type ExternalAccountLinkListResponseDto, type ExternalAccountLinkResponseDto, type FileImportControllerIdentifyFileData, type FileImportControllerIdentifyFileResponse, type FileImportControllerImportBeancountData, type FileImportControllerImportBeancountResponse, type FileImportControllerImportFileData, type FileImportControllerImportFileResponse, type FileImportDto, type ForecastControllerGetForecastData, type ForecastControllerGetForecastResponse, type ForecastItemDto, type ForecastResponseDto, type FxRateDto, type GenerateSnapshotBody, type GenerateSnapshotResponse, type HealthControllerCheckDatabaseResponse, type HealthControllerCheckOpenBbResponse, type HealthControllerCheckRedisResponse, type HealthControllerGetCircuitBreakersHealthResponse, type HealthControllerGetHealthResponse, type HealthControllerGetMetricsResponse, type HealthControllerResetCircuitBreakerData, type HealthControllerResetCircuitBreakerResponse, HealthService, type HoldingAssetClassAccountSliceDto, type HoldingAssetClassCrossAccountResponseDto, type HoldingPnlControllerGetHoldingPnlData, type HoldingPnlControllerGetHoldingPnlResponse, type HoldingPnlResponseDto, type HoldingPnlRowDto, type HoldingPnlWarningDto, type IdentifyResultDto, type ImportErrorDto, type ImportResultDto, type ImporterConfigControllerGetConfigData, type ImporterConfigControllerGetConfigResponse, type ImporterConfigControllerResetConfigData, type ImporterConfigControllerResetConfigResponse, type ImporterConfigControllerUpdateConfigData, type ImporterConfigControllerUpdateConfigResponse, type ImporterConfigDataDto, type ImporterConfigDto, type InfoControllerGetInfoResponse, type MapperDefaultsDto, type MonetaryDto, type MonthlyForecastDto, type MultiCurrencyBalanceResponseDto, type MultiCurrencyPointDto, type NetWorthByCurrencyDto, type NetWorthResponseDto, type NlpAccountConfirmationDataDto, type NlpAlternativePayeeDto, type NlpControllerClearSessionData, type NlpControllerClearSessionResponse, type NlpControllerGetSessionData, type NlpControllerGetSessionResponse, type NlpControllerProcessNaturalLanguageData, type NlpControllerProcessNaturalLanguageResponse, type NlpDefaultAccountsDto, type NlpDuplicateConfirmationDataDto, type NlpParsedDataDto, type NlpPayeeConfirmationDataDto, type NlpResponseDto, type NlpRuleConfirmationDataDto, type NlpSimilarityDto, type NlpSourceTransactionDto, type NlpSuggestedAccountDto, type NlpSuggestedAccountsDto, type NlpSuggestedPayeeDto, type NlpTargetTransactionDto, type NlpTransactionInfoDto, type OnboardingAccountDto, type OnboardingControllerBootstrapData, type OnboardingControllerBootstrapResponse, type OnboardingDto, OpenAPI, type OpenAPIConfig, type OpeningBalanceResultDto, type PadReconciliationDto, type PadResultDto, type ParserTelemetryReportDto, type PayeeAutocompleteResponseDto, type PayeeControllerAutocompleteData, type PayeeControllerAutocompleteResponse, type PayeeControllerCreateData, type PayeeControllerCreateResponse, type PayeeControllerDeleteData, type PayeeControllerDeleteResponse, type PayeeControllerFindAllData, type PayeeControllerFindAllResponse, type PayeeControllerFindOneData, type PayeeControllerFindOneResponse, type PayeeControllerGetTopPayeesData, type PayeeControllerGetTopPayeesResponse, type PayeeControllerUpdateData, type PayeeControllerUpdateResponse, type PayeeListResponseDto, type PayeeProfileAdminControllerCreateData, type PayeeProfileAdminControllerCreateResponse, type PayeeProfileAdminControllerDeleteData, type PayeeProfileAdminControllerDeleteResponse, type PayeeProfileAdminControllerFindAllData, type PayeeProfileAdminControllerFindAllResponse, type PayeeProfileAdminControllerFindOneData, type PayeeProfileAdminControllerFindOneResponse, type PayeeProfileAdminControllerUnverifyData, type PayeeProfileAdminControllerUnverifyResponse, type PayeeProfileAdminControllerUpdateData, type PayeeProfileAdminControllerUpdateResponse, type PayeeProfileAdminControllerVerifyData, type PayeeProfileAdminControllerVerifyResponse, type PayeeProfileListResponseDto, type PayeeProfileResponseDto, type PayeeResponseDto, type PayeeStatsResponseDto, type PlatformControllerCreateData, type PlatformControllerCreateResponse, type PlatformControllerDeleteData, type PlatformControllerDeleteResponse, type PlatformControllerFindAllResponse, type PlatformControllerGetPlatformListResponse, type PlatformControllerMatchPlatformsData, type PlatformControllerMatchPlatformsResponse, type PlatformControllerUpdateData, type PlatformControllerUpdateResponse, type PlatformGroupDto, type PlatformListItemDto, type PlatformMatchResponseDto, type PlatformMatchResultDto, type PortfolioTrendsResponseDto, type PostingDetailDto, type PostingResponseDto, type PriceControllerBulkCreateData, type PriceControllerBulkCreateResponse, type PriceControllerCreateData, type PriceControllerCreateResponse, type PriceControllerDeleteData, type PriceControllerDeleteResponse, type PriceControllerFindAllData, type PriceControllerFindAllResponse, type PriceControllerFindOneData, type PriceControllerFindOneResponse, type PriceControllerUpdateData, type PriceControllerUpdateResponse, type PriceListResponseDto, type PriceResponseDto, type ProcessNlpDto, type PropertyControllerDeleteData, type PropertyControllerDeleteResponse, type PropertyControllerGetAllResponse, type PropertyControllerGetByKeyData, type PropertyControllerGetByKeyResponse, type PropertyControllerUpdateData, type PropertyControllerUpdateResponse, type ProviderSyncConfigDto, type ProviderSyncControllerGetSupportedProvidersData, type ProviderSyncControllerGetSupportedProvidersResponse, type ProviderSyncControllerIsProviderSupportedData, type ProviderSyncControllerIsProviderSupportedResponse, type ProviderSyncControllerSyncData, type ProviderSyncControllerSyncResponse, type ProviderSyncDto, type ProviderSyncResponseDto, ProviderSyncService, type ReconciliationComputeResultDto, type ReconciliationControllerAssertData, type ReconciliationControllerAssertResponse, type ReconciliationControllerComputeData, type ReconciliationControllerComputeResponse, type ReconciliationControllerHistoryData, type ReconciliationControllerHistoryResponse, type ReconciliationControllerPadData, type ReconciliationControllerPadResponse, type ReconciliationRecordDto, type RecurringMatchInfoDto, type RecurringRuleControllerCreateData, type RecurringRuleControllerCreateFromTransactionData, type RecurringRuleControllerCreateFromTransactionResponse, type RecurringRuleControllerCreateResponse, type RecurringRuleControllerDeleteData, type RecurringRuleControllerDeleteResponse, type RecurringRuleControllerFindAllData, type RecurringRuleControllerFindAllResponse, type RecurringRuleControllerFindOneData, type RecurringRuleControllerFindOneResponse, type RecurringRuleControllerGetWithStatsData, type RecurringRuleControllerGetWithStatsResponse, type RecurringRuleControllerUpdateData, type RecurringRuleControllerUpdateResponse, type RecurringRuleResponseDto, type RecurringRuleWithStatsResponseDto, type RecurringSuggestionDto, type RegionConfigDto, type RegionInfoDto, type RegionsMetadataResponseDto, type ReopenAccountDto, type ReportingControllerBackfillSnapshotsData, type ReportingControllerBackfillSnapshotsResponse, type ReportingControllerGenerateSnapshotData, type ReportingControllerGenerateSnapshotResponse, type ReportingControllerGetCashFlowTrendsData, type ReportingControllerGetCashFlowTrendsResponse, type ReportingControllerGetPortfolioTrendsData, type ReportingControllerGetPortfolioTrendsResponse, type ResolveResultDto, type ResolveReviewDto, type ReviewControllerBatchResolveData, type ReviewControllerBatchResolveResponse, type ReviewControllerFindAllData, type ReviewControllerFindAllResponse, type ReviewControllerFindOneData, type ReviewControllerFindOneResponse, type ReviewControllerGetStatsData, type ReviewControllerGetStatsResponse, type ReviewControllerResolveData, type ReviewControllerResolveResponse, type ReviewControllerUndoData, type ReviewControllerUndoResponse, type ReviewDetailDto, type ReviewItemPreviewDto, type ReviewListResponseDto, type ReviewStatsDto, type ReviewSummaryDto, type RuleStatisticsResponseDto, type SignupDto, type SupportedProvidersResponseDto, type TagSuggestionDto, type TagSuggestionsResponseDto, type TelemetryControllerGetCoverageMetricsData, type TelemetryControllerGetCoverageMetricsResponse, type TelemetryControllerReportCoverageMissData, type TelemetryControllerReportCoverageMissResponse, type TelemetryControllerReportTelemetryData, type TelemetryControllerReportTelemetryResponse, type TemplateMetadataDto, type TemplateMetadataResponseDto, type TestRuleDto, type TestRuleResponseDto, type TimeSeriesPointDto, type TransactionControllerCorrectData, type TransactionControllerCorrectResponse, type TransactionControllerCreateBatchData, type TransactionControllerCreateBatchResponse, type TransactionControllerCreateData, type TransactionControllerCreateResponse, type TransactionControllerDeleteData, type TransactionControllerDeleteResponse, type TransactionControllerGetDetailData, type TransactionControllerGetDetailResponse, type TransactionControllerListData, type TransactionControllerListResponse, type TransactionControllerSuggestTagsData, type TransactionControllerSuggestTagsResponse, type TransactionControllerUpdateData, type TransactionControllerUpdateResponse, type TransactionDetailDto, type TransactionListResponseDto, type TransactionListSummaryDto, type TransactionResponseDto, type TransactionRuleControllerBulkCreateData, type TransactionRuleControllerBulkCreateResponse, type TransactionRuleControllerCreateData, type TransactionRuleControllerCreateResponse, type TransactionRuleControllerDeleteData, type TransactionRuleControllerDeleteResponse, type TransactionRuleControllerExportData, type TransactionRuleControllerExportResponse, type TransactionRuleControllerGetDetailData, type TransactionRuleControllerGetDetailResponse, type TransactionRuleControllerGetStatisticsData, type TransactionRuleControllerGetStatisticsResponse, type TransactionRuleControllerListData, type TransactionRuleControllerListResponse, type TransactionRuleControllerTestData, type TransactionRuleControllerTestResponse, type TransactionRuleControllerUpdateData, type TransactionRuleControllerUpdateResponse, type TransactionRuleControllerValidateData, type TransactionRuleControllerValidateResponse, type TransactionRuleListResponseDto, type TransactionRuleResponseDto, type TransactionSummaryDto, type TrendSummaryDto, type UncoveredFormatMissDto, type UndoResultDto, type UpdateAccountDto, type UpdateBeanEventDto, type UpdateBeanPriceDto, type UpdateCommodityDto, type UpdateConfigDataDto, type UpdateImporterConfigDto, type UpdateMapperDefaultsDto, type UpdatePayeeDto, type UpdatePayeeProfileDto, type UpdatePlatformDto, type UpdatePropertyDto, type UpdateRecurringRuleDto, type UpdateTransactionDto, type UpdateTransactionRuleDto, type UpdateUserSettingDto, type UserControllerDeleteOwnUserData, type UserControllerDeleteOwnUserResponse, type UserControllerDeleteUserData, type UserControllerDeleteUserResponse, type UserControllerGetAllUserSettingsByPageData, type UserControllerGetAllUserSettingsByPageResponse, type UserControllerGetAssetLiabilitySummaryResponse, type UserControllerGetUserData, type UserControllerGetUserInfoData, type UserControllerGetUserInfoResponse, type UserControllerGetUserResponse, type UserControllerSignupUserData, type UserControllerSignupUserResponse, type UserControllerUpdateUserSettingData, type UserControllerUpdateUserSettingResponse, type ValidateRuleDto, type ValidateRuleResponseDto, type VersionedConfigDto, type action, type action2, type assetClass, type assetSubType, type bookingMethod, type branchType, type category, type chartToken, type colorScheme, type confidenceLevel, type conflictStrategy, type dataSource, type equitySubType, type flag, type flag2, type frequency, type importerId, type intent, type investmentAction, type learningSource, type liabilitySubType, type matchLogic, type matchType, type matchType2, type method, type mode, type paymentSource, type period, type provider, type source, type source2, type source3, type status, type status2, type status3, type status4, type suggestedAction, type suggestedFrequency, type type, type type2, type type3, type type4, type value, type viewMode };