@firela/api-types 0.0.0-canary.7cd70834 → 0.0.0-canary.8a8b3972

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
@@ -26,6 +26,10 @@ type CreateAccountDto = {
26
26
  * Account path (hierarchical, colon-separated)
27
27
  */
28
28
  path: string;
29
+ /**
30
+ * Display name to distinguish accounts at the same path (default: "")
31
+ */
32
+ displayName?: string;
29
33
  /**
30
34
  * Account open date
31
35
  */
@@ -78,6 +82,10 @@ type AccountResponseDto = {
78
82
  * Account path (hierarchical, colon-separated)
79
83
  */
80
84
  path: string;
85
+ /**
86
+ * Display name distinguishing multiple accounts at the same path
87
+ */
88
+ displayName: string;
81
89
  /**
82
90
  * Account type (root segment)
83
91
  */
@@ -164,6 +172,10 @@ type AccountListResponseDto = {
164
172
  total: number;
165
173
  };
166
174
  type UpdateAccountDto = {
175
+ /**
176
+ * Display name to distinguish accounts at the same path
177
+ */
178
+ displayName?: string;
167
179
  /**
168
180
  * Allowed currencies (null = no restriction)
169
181
  */
@@ -189,9 +201,7 @@ type UpdateAccountDto = {
189
201
  /**
190
202
  * Platform ID (references Platform.id), null to clear association
191
203
  */
192
- platformId?: {
193
- [key: string]: unknown;
194
- } | null;
204
+ platformId?: string | null;
195
205
  };
196
206
  type CloseAccountDto = {
197
207
  /**
@@ -211,6 +221,122 @@ type ReopenAccountDto = {
211
221
  */
212
222
  reopenDate?: string;
213
223
  };
224
+ type AccountStandardResponseDto = {
225
+ /**
226
+ * Account path (hierarchical, colon-separated)
227
+ */
228
+ path: string;
229
+ /**
230
+ * Account type in Beancount hierarchy
231
+ */
232
+ type: 'Assets' | 'Liabilities' | 'Income' | 'Expenses' | 'Equity';
233
+ /**
234
+ * i18n key for localized display name
235
+ */
236
+ i18nKey: string;
237
+ /**
238
+ * Short localized display name
239
+ */
240
+ name?: string;
241
+ /**
242
+ * Account description (stable semantics only)
243
+ */
244
+ description: string;
245
+ /**
246
+ * Account tags for categorization
247
+ */
248
+ tags: Array<string>;
249
+ /**
250
+ * Icon identifier for UI display
251
+ */
252
+ icon: string;
253
+ };
254
+ type AccountStandardListResponseDto = {
255
+ /**
256
+ * Array of account templates
257
+ */
258
+ items: Array<AccountStandardResponseDto>;
259
+ /**
260
+ * Total number of account templates
261
+ */
262
+ total: number;
263
+ /**
264
+ * Region code
265
+ */
266
+ region: string;
267
+ };
268
+ type TemplateMetadataDto = {
269
+ /**
270
+ * Whether this path can be extended
271
+ */
272
+ extendable: boolean;
273
+ /**
274
+ * Root account type
275
+ */
276
+ rootType: string;
277
+ };
278
+ type TemplateMetadataResponseDto = {
279
+ metadata?: TemplateMetadataDto;
280
+ };
281
+ type RegionConfigDto = {
282
+ currency: string;
283
+ dateFormat: string;
284
+ locale: string;
285
+ };
286
+ type RegionInfoDto = {
287
+ code: string;
288
+ displayName: string;
289
+ parent?: string;
290
+ chain: Array<string>;
291
+ config: RegionConfigDto;
292
+ };
293
+ type RegionsMetadataResponseDto = {
294
+ regions: Array<RegionInfoDto>;
295
+ };
296
+ type CostSpecDto = {
297
+ /**
298
+ * Cost specification mode (mirrors engine CostSpec)
299
+ */
300
+ mode: 'per-unit' | 'total' | 'date' | 'label' | 'auto';
301
+ /**
302
+ * Per-unit cost (required when mode is "per-unit")
303
+ */
304
+ numberPerUnit?: string;
305
+ /**
306
+ * Total cost for all units (required when mode is "total")
307
+ */
308
+ totalNumber?: string;
309
+ /**
310
+ * Cost currency (required in all modes)
311
+ */
312
+ currency: string;
313
+ /**
314
+ * Lot acquisition date, ISO 8601 (required when mode is "date")
315
+ */
316
+ date?: string;
317
+ /**
318
+ * Lot label (required when mode is "label"; optional tag in buy modes)
319
+ */
320
+ label?: string;
321
+ /**
322
+ * Merge lots for AVERAGE booking (mode: auto)
323
+ */
324
+ merge?: boolean;
325
+ };
326
+ /**
327
+ * Cost specification mode (mirrors engine CostSpec)
328
+ */
329
+ type mode = 'per-unit' | 'total' | 'date' | 'label' | 'auto';
330
+ type AmountDto = {
331
+ /**
332
+ * Amount as decimal string (max 15 integer + 15 decimal digits)
333
+ */
334
+ number: string;
335
+ /**
336
+ * Currency/commodity code
337
+ */
338
+ currency: string;
339
+ };
214
340
  type CreatePostingDto = {
215
341
  /**
216
342
  * Account name in Beancount format (must start with uppercase, colon-separated)
@@ -230,6 +356,14 @@ type CreatePostingDto = {
230
356
  meta?: {
231
357
  [key: string]: unknown;
232
358
  };
359
+ /**
360
+ * Cost basis (Beancount `{...}`). Maps to engine costSpec. Required for commodity holdings so they carry a monetary weight that can balance.
361
+ */
362
+ cost?: CostSpecDto;
363
+ /**
364
+ * Price annotation (Beancount `@...`). Maps to engine price. Used for valuation; cost takes priority for balance weight.
365
+ */
366
+ price?: AmountDto;
233
367
  };
234
368
  type CreateTransactionDto = {
235
369
  /**
@@ -285,7 +419,7 @@ type PostingResponseDto = {
285
419
  */
286
420
  account: string;
287
421
  /**
288
- * Amount (may be null if interpolated)
422
+ * Amount as decimal string. Typed optional but always present in responses: interpolation fills any MISSING posting before it is persisted or returned.
289
423
  */
290
424
  units?: string;
291
425
  /**
@@ -401,6 +535,84 @@ type ApiProblemResponseDto = {
401
535
  [key: string]: unknown;
402
536
  };
403
537
  };
538
+ type BatchCreateTransactionDto = {
539
+ /**
540
+ * Array of transactions to create
541
+ */
542
+ transactions: Array<CreateTransactionDto>;
543
+ };
544
+ type BatchTransactionErrorDto = {
545
+ /**
546
+ * Index of failed transaction in the input array
547
+ */
548
+ index: number;
549
+ /**
550
+ * Error message describing the failure
551
+ */
552
+ error: string;
553
+ /**
554
+ * Structured error code for programmatic handling
555
+ */
556
+ errorCode?: string;
557
+ };
558
+ type BatchTransactionResponseDto = {
559
+ /**
560
+ * Successfully created transactions
561
+ */
562
+ succeeded: Array<TransactionResponseDto>;
563
+ /**
564
+ * Failed transactions with error details
565
+ */
566
+ failed: Array<BatchTransactionErrorDto>;
567
+ };
568
+ type CorrectTransactionDto = {
569
+ /**
570
+ * Transaction date (ISO 8601 format)
571
+ */
572
+ date: string;
573
+ /**
574
+ * Transaction flag: * (cleared), ! (pending)
575
+ */
576
+ flag?: '*' | '!';
577
+ /**
578
+ * Payee name
579
+ */
580
+ payee?: string;
581
+ /**
582
+ * Transaction narration/description
583
+ */
584
+ narration: string;
585
+ /**
586
+ * Transaction tags (without # prefix)
587
+ */
588
+ tags?: Array<string>;
589
+ /**
590
+ * Transaction links (without ^ prefix)
591
+ */
592
+ links?: Array<string>;
593
+ /**
594
+ * Transaction postings (minimum 1, typically 2 for double-entry)
595
+ */
596
+ postings: Array<CreatePostingDto>;
597
+ /**
598
+ * Transaction-level metadata
599
+ */
600
+ meta?: {
601
+ [key: string]: unknown;
602
+ };
603
+ /**
604
+ * Unique key for idempotent transaction creation. If provided, duplicate requests with the same key will return the existing transaction.
605
+ */
606
+ idempotencyKey?: string;
607
+ /**
608
+ * 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.
609
+ */
610
+ autoCreateAccounts?: boolean;
611
+ /**
612
+ * Reason for correcting/superseding the original transaction
613
+ */
614
+ correctionReason?: string;
615
+ };
404
616
  type PostingDetailDto = {
405
617
  /**
406
618
  * Posting ID
@@ -411,11 +623,11 @@ type PostingDetailDto = {
411
623
  */
412
624
  accountId: string;
413
625
  /**
414
- * Account name
626
+ * Fully-qualified Beancount account path
415
627
  */
416
- accountName: string;
628
+ account: string;
417
629
  /**
418
- * Amount (may be null if interpolated)
630
+ * Amount as decimal string. Typed optional but always present in responses: interpolation fills any MISSING posting before it is persisted or returned.
419
631
  */
420
632
  units?: string;
421
633
  /**
@@ -497,9 +709,9 @@ type TransactionDetailDto = {
497
709
  */
498
710
  status: 'ACTIVE' | 'VOIDED' | 'SUPERSEDED';
499
711
  /**
500
- * Source type (how the transaction was created)
712
+ * Source type (free-form string from transaction metadata, e.g. import, api)
501
713
  */
502
- sourceType?: 'NLP' | 'CSV' | 'OCR' | 'API';
714
+ sourceType?: string;
503
715
  /**
504
716
  * Source platform (e.g., alipay, wechat)
505
717
  */
@@ -524,6 +736,14 @@ type TransactionDetailDto = {
524
736
  * Correction reason (if voided or superseded)
525
737
  */
526
738
  correctionReason?: string;
739
+ /**
740
+ * ID of the transaction that supersedes this one (set when status=SUPERSEDED)
741
+ */
742
+ supersededBy?: string;
743
+ /**
744
+ * ID of the transaction this one corrected/replaced (back-link on the replacement)
745
+ */
746
+ originalTxn?: string;
527
747
  };
528
748
  /**
529
749
  * Transaction flag
@@ -533,10 +753,6 @@ type flag2 = 'CLEARED' | 'PENDING' | 'PADDING' | 'SUMMARIZE' | 'TRANSFER' | 'CON
533
753
  * Transaction status
534
754
  */
535
755
  type status2 = 'ACTIVE' | 'VOIDED' | 'SUPERSEDED';
536
- /**
537
- * Source type (how the transaction was created)
538
- */
539
- type sourceType = 'NLP' | 'CSV' | 'OCR' | 'API';
540
756
  type TransactionListResponseDto = {
541
757
  /**
542
758
  * List of transactions
@@ -555,6 +771,22 @@ type TransactionListResponseDto = {
555
771
  */
556
772
  offset: number;
557
773
  };
774
+ type TagSuggestionDto = {
775
+ /**
776
+ * Tag name
777
+ */
778
+ tag: string;
779
+ /**
780
+ * Usage count across ACTIVE transactions
781
+ */
782
+ count: number;
783
+ };
784
+ type TagSuggestionsResponseDto = {
785
+ /**
786
+ * Tag suggestions sorted as requested
787
+ */
788
+ data: Array<TagSuggestionDto>;
789
+ };
558
790
  type UpdateTransactionDto = {
559
791
  /**
560
792
  * Transaction flag (CLEARED, PENDING, etc.)
@@ -583,61 +815,6 @@ type UpdateTransactionDto = {
583
815
  [key: string]: unknown;
584
816
  };
585
817
  };
586
- type AccountStandardResponseDto = {
587
- /**
588
- * Account path (hierarchical, colon-separated)
589
- */
590
- path: string;
591
- /**
592
- * Account type in Beancount hierarchy
593
- */
594
- type: 'Assets' | 'Liabilities' | 'Income' | 'Expenses' | 'Equity';
595
- /**
596
- * i18n key for localized display name
597
- */
598
- i18nKey?: string;
599
- /**
600
- * Account description
601
- */
602
- description?: string;
603
- /**
604
- * Account tags for categorization
605
- */
606
- tags?: Array<string>;
607
- /**
608
- * Icon identifier for UI display
609
- */
610
- icon?: string;
611
- };
612
- type AccountStandardListResponseDto = {
613
- /**
614
- * Array of account templates
615
- */
616
- items: Array<AccountStandardResponseDto>;
617
- /**
618
- * Total number of account templates
619
- */
620
- total: number;
621
- /**
622
- * Region code
623
- */
624
- region: string;
625
- };
626
- type RegionConfigDto = {
627
- currency: string;
628
- dateFormat: string;
629
- locale: string;
630
- };
631
- type RegionInfoDto = {
632
- code: string;
633
- displayName: string;
634
- parent?: string;
635
- chain: Array<string>;
636
- config: RegionConfigDto;
637
- };
638
- type RegionsMetadataResponseDto = {
639
- regions: Array<RegionInfoDto>;
640
- };
641
818
  type BalanceResponseDto = {
642
819
  /**
643
820
  * Account name
@@ -702,9 +879,9 @@ type TransactionSummaryDto = {
702
879
  */
703
880
  accountName?: string;
704
881
  /**
705
- * Source type (NLP, CSV, OCR, API)
882
+ * Source type (free-form string from transaction metadata, e.g. import, api)
706
883
  */
707
- sourceType?: 'NLP' | 'CSV' | 'OCR' | 'API';
884
+ sourceType?: string;
708
885
  /**
709
886
  * Source platform (e.g., alipay, wechat)
710
887
  */
@@ -728,9 +905,9 @@ type ReviewSummaryDto = {
728
905
  */
729
906
  confidence: number;
730
907
  /**
731
- * Confidence level derived from score
908
+ * Confidence level derived from score. Null for error-type reviews (ACCOUNT_VALIDATION/PIPELINE_ERROR) which carry no confidence.
732
909
  */
733
- confidenceLevel: 'HIGH' | 'MEDIUM' | 'LOW';
910
+ confidenceLevel: 'HIGH' | 'MEDIUM' | 'LOW' | null;
734
911
  /**
735
912
  * i18n message key for summary (e.g., review.summary.duplicate). Translate on frontend with summaryParams.
736
913
  */
@@ -746,7 +923,7 @@ type ReviewSummaryDto = {
746
923
  */
747
924
  matchReasons: Array<string>;
748
925
  /**
749
- * Source type (NLP, CSV, OCR, API)
926
+ * Source type (free-form string from transaction metadata, e.g. import, api)
750
927
  */
751
928
  sourceType: string;
752
929
  /**
@@ -791,7 +968,7 @@ type type2 = 'DUPLICATE' | 'RULE_MATCH' | 'PAYEE_MATCH' | 'ACCOUNT_VALIDATION' |
791
968
  */
792
969
  type status3 = 'PENDING' | 'RESOLVED' | 'EXPIRED' | 'CANCELLED';
793
970
  /**
794
- * Confidence level derived from score
971
+ * Confidence level derived from score. Null for error-type reviews (ACCOUNT_VALIDATION/PIPELINE_ERROR) which carry no confidence.
795
972
  */
796
973
  type confidenceLevel = 'HIGH' | 'MEDIUM' | 'LOW';
797
974
  type ReviewListResponseDto = {
@@ -833,7 +1010,7 @@ type DecisionOptionDto = {
833
1010
  /**
834
1011
  * The action value to submit (e.g., UPGRADE_REPLACE, ACCEPT)
835
1012
  */
836
- value: string;
1013
+ value: 'UPGRADE_REPLACE' | 'LINK_KEEP_BOTH' | 'IGNORE_NEW' | 'CONFIRM_DIFFERENT' | 'ACCEPT' | 'REJECT' | 'ACCEPT_AND_LEARN' | 'CHOOSE_OTHER' | 'CANCEL' | 'FIX' | 'IGNORE';
837
1014
  /**
838
1015
  * i18n message key for display label (e.g., review.payee.accept.label)
839
1016
  */
@@ -847,6 +1024,10 @@ type DecisionOptionDto = {
847
1024
  */
848
1025
  recommended?: boolean;
849
1026
  };
1027
+ /**
1028
+ * The action value to submit (e.g., UPGRADE_REPLACE, ACCEPT)
1029
+ */
1030
+ type value = 'UPGRADE_REPLACE' | 'LINK_KEEP_BOTH' | 'IGNORE_NEW' | 'CONFIRM_DIFFERENT' | 'ACCEPT' | 'REJECT' | 'ACCEPT_AND_LEARN' | 'CHOOSE_OTHER' | 'CANCEL' | 'FIX' | 'IGNORE';
850
1031
  type ReviewDetailDto = {
851
1032
  /**
852
1033
  * Review item ID
@@ -865,9 +1046,9 @@ type ReviewDetailDto = {
865
1046
  */
866
1047
  confidence: number;
867
1048
  /**
868
- * Confidence level derived from score
1049
+ * Confidence level derived from score. Null for error-type reviews (ACCOUNT_VALIDATION/PIPELINE_ERROR) which carry no confidence.
869
1050
  */
870
- confidenceLevel: 'HIGH' | 'MEDIUM' | 'LOW';
1051
+ confidenceLevel: 'HIGH' | 'MEDIUM' | 'LOW' | null;
871
1052
  /**
872
1053
  * i18n message key for summary (e.g., review.summary.duplicate). Translate on frontend with summaryParams.
873
1054
  */
@@ -883,7 +1064,7 @@ type ReviewDetailDto = {
883
1064
  */
884
1065
  matchReasons: Array<string>;
885
1066
  /**
886
- * Source type (NLP, CSV, OCR, API)
1067
+ * Source type (free-form string from transaction metadata, e.g. import, api)
887
1068
  */
888
1069
  sourceType: string;
889
1070
  /**
@@ -933,31 +1114,143 @@ type ReviewDetailDto = {
933
1114
  */
934
1115
  transactionId?: string;
935
1116
  };
936
- type PayeeResponseDto = {
1117
+ type ResolveReviewDto = {
937
1118
  /**
938
- * Unique identifier (UUID)
1119
+ * Decision action. Valid actions vary by review type — see DecisionOptionDto.value returned by the review detail endpoint.
939
1120
  */
940
- id: string;
1121
+ action: 'UPGRADE_REPLACE' | 'LINK_KEEP_BOTH' | 'IGNORE_NEW' | 'CONFIRM_DIFFERENT' | 'ACCEPT' | 'REJECT' | 'ACCEPT_AND_LEARN' | 'CHOOSE_OTHER' | 'CANCEL' | 'FIX' | 'IGNORE';
941
1122
  /**
942
- * User ID (owner of this payee mapping)
1123
+ * Additional data for the decision (e.g., selected account ID)
943
1124
  */
944
- userId: string;
1125
+ data?: {
1126
+ [key: string]: unknown;
1127
+ };
1128
+ };
1129
+ /**
1130
+ * Decision action. Valid actions vary by review type — see DecisionOptionDto.value returned by the review detail endpoint.
1131
+ */
1132
+ type action = 'UPGRADE_REPLACE' | 'LINK_KEEP_BOTH' | 'IGNORE_NEW' | 'CONFIRM_DIFFERENT' | 'ACCEPT' | 'REJECT' | 'ACCEPT_AND_LEARN' | 'CHOOSE_OTHER' | 'CANCEL' | 'FIX' | 'IGNORE';
1133
+ type ResolveResultDto = {
945
1134
  /**
946
- * User's original payee name (e.g., 'Starbucks', 'McDonald')
1135
+ * Whether resolution was successful
947
1136
  */
948
- payee: string;
1137
+ success: boolean;
949
1138
  /**
950
- * Reference to global PayeeProfile (merchant info, i18n keys, categories)
1139
+ * i18n message key for result message (e.g., review.payee.result.mapped)
951
1140
  */
952
- payeeProfileId?: {
953
- [key: string]: unknown;
954
- } | null;
1141
+ messageKey?: string;
955
1142
  /**
956
- * User's custom category (overrides PayeeProfile category if set)
1143
+ * Parameters for message interpolation (e.g., { name: "PayeeName" })
957
1144
  */
958
- customCategory?: {
959
- [key: string]: unknown;
960
- } | null;
1145
+ messageParams?: {
1146
+ [key: string]: string;
1147
+ };
1148
+ /**
1149
+ * Resolution ID for undo
1150
+ */
1151
+ resolutionId: string;
1152
+ /**
1153
+ * Whether this decision can be undone
1154
+ */
1155
+ canUndo: boolean;
1156
+ /**
1157
+ * Deadline for undo (24h from resolution)
1158
+ */
1159
+ undoDeadline: string;
1160
+ /**
1161
+ * Rule ID if learning was triggered (ACCEPT_AND_LEARN actions). Use this to deep-link to the rule management page.
1162
+ */
1163
+ learnedRuleId?: string;
1164
+ };
1165
+ type UndoResultDto = {
1166
+ /**
1167
+ * Whether undo was successful
1168
+ */
1169
+ success: boolean;
1170
+ /**
1171
+ * Message
1172
+ */
1173
+ message?: string;
1174
+ /**
1175
+ * Review item ID that was restored
1176
+ */
1177
+ reviewId: string;
1178
+ };
1179
+ type BatchResolveDto = {
1180
+ /**
1181
+ * Review item IDs to resolve
1182
+ */
1183
+ reviewIds: Array<string>;
1184
+ /**
1185
+ * Decision action to apply to all items
1186
+ */
1187
+ action: 'UPGRADE_REPLACE' | 'LINK_KEEP_BOTH' | 'IGNORE_NEW' | 'CONFIRM_DIFFERENT' | 'ACCEPT' | 'REJECT' | 'ACCEPT_AND_LEARN' | 'CHOOSE_OTHER' | 'CANCEL' | 'FIX' | 'IGNORE';
1188
+ /**
1189
+ * Additional data for the decision
1190
+ */
1191
+ data?: {
1192
+ [key: string]: unknown;
1193
+ };
1194
+ };
1195
+ type BatchResolveResultDto = {
1196
+ /**
1197
+ * Number of successfully resolved items
1198
+ */
1199
+ successCount: number;
1200
+ /**
1201
+ * Number of failed items
1202
+ */
1203
+ failedCount: number;
1204
+ /**
1205
+ * Details for each item
1206
+ */
1207
+ results: Array<string>;
1208
+ };
1209
+ type CreatePayeeDto = {
1210
+ /**
1211
+ * User's original payee name (e.g., 'Starbucks', 'McDonald'). This is the raw payee string as entered by the user.
1212
+ */
1213
+ payee: string;
1214
+ /**
1215
+ * Optional reference to global PayeeProfile for standardized data (merchant info, i18n keys, categories)
1216
+ */
1217
+ payeeProfileId?: string;
1218
+ /**
1219
+ * User's custom category for this payee (overrides PayeeProfile category)
1220
+ */
1221
+ customCategory?: string;
1222
+ /**
1223
+ * User's custom tags for this payee (e.g., ['favorite', 'work_meal'])
1224
+ */
1225
+ customTags?: Array<string>;
1226
+ /**
1227
+ * Metadata for extended information (location, notes, contact info, etc.)
1228
+ */
1229
+ meta?: {
1230
+ [key: string]: unknown;
1231
+ };
1232
+ };
1233
+ type PayeeResponseDto = {
1234
+ /**
1235
+ * Unique identifier (UUID)
1236
+ */
1237
+ id: string;
1238
+ /**
1239
+ * User ID (owner of this payee mapping)
1240
+ */
1241
+ userId: string;
1242
+ /**
1243
+ * User's original payee name (e.g., 'Starbucks', 'McDonald')
1244
+ */
1245
+ payee: string;
1246
+ /**
1247
+ * Reference to global PayeeProfile (merchant info, i18n keys, categories)
1248
+ */
1249
+ payeeProfileId?: string | null;
1250
+ /**
1251
+ * User's custom category (overrides PayeeProfile category if set)
1252
+ */
1253
+ customCategory?: string | null;
961
1254
  /**
962
1255
  * User's custom tags (e.g., ['favorite', 'work_meal'])
963
1256
  */
@@ -1019,6 +1312,94 @@ type PayeeStatsResponseDto = {
1019
1312
  */
1020
1313
  lastUsedAt: string;
1021
1314
  };
1315
+ type UpdatePayeeDto = {
1316
+ /**
1317
+ * Optional reference to global PayeeProfile for standardized data (merchant info, i18n keys, categories)
1318
+ */
1319
+ payeeProfileId?: string;
1320
+ /**
1321
+ * User's custom category for this payee (overrides PayeeProfile category)
1322
+ */
1323
+ customCategory?: string;
1324
+ /**
1325
+ * User's custom tags for this payee (e.g., ['favorite', 'work_meal'])
1326
+ */
1327
+ customTags?: Array<string>;
1328
+ /**
1329
+ * Metadata for extended information (location, notes, contact info, etc.). Will merge with existing metadata.
1330
+ */
1331
+ meta?: {
1332
+ [key: string]: unknown;
1333
+ };
1334
+ /**
1335
+ * Enable or disable this payee. Disabled payees will not appear in autocomplete suggestions.
1336
+ */
1337
+ isActive?: boolean;
1338
+ };
1339
+ type CreatePayeeProfileDto = {
1340
+ /**
1341
+ * Canonical payee name (unique, case-insensitive). This is the primary identifier for the payee.
1342
+ */
1343
+ canonical: string;
1344
+ /**
1345
+ * Multi-language aliases for the payee. Used for matching user input in different languages.
1346
+ */
1347
+ aliases?: Array<string>;
1348
+ /**
1349
+ * Translation key for i18n integration (XLIFF translation system)
1350
+ */
1351
+ i18nKey?: string;
1352
+ /**
1353
+ * Payee category classification
1354
+ */
1355
+ category: 'RESTAURANT' | 'CAFE' | 'FAST_FOOD' | 'BAR' | 'SUPERMARKET' | 'CONVENIENCE_STORE' | 'SHOPPING_MALL' | 'ONLINE_SHOPPING' | 'TAXI' | 'RIDE_SHARING' | 'PUBLIC_TRANSPORT' | 'PARKING' | 'GAS_STATION' | 'UTILITIES' | 'TELECOM' | 'STREAMING' | 'HEALTHCARE' | 'EDUCATION' | 'ENTERTAINMENT' | 'SPORTS' | 'TRAVEL' | 'HOTEL' | 'OTHER';
1356
+ /**
1357
+ * Sub-category for more specific classification
1358
+ */
1359
+ subCategory?: string;
1360
+ /**
1361
+ * Country/region codes where the payee operates (ISO 3166-1 alpha-2)
1362
+ */
1363
+ countries?: Array<string>;
1364
+ /**
1365
+ * Primary operating country (ISO 3166-1 alpha-2)
1366
+ */
1367
+ primaryCountry?: string;
1368
+ /**
1369
+ * Search keywords for fuzzy matching
1370
+ */
1371
+ keywords?: Array<string>;
1372
+ /**
1373
+ * Payee logo URL
1374
+ */
1375
+ logoUrl?: string;
1376
+ /**
1377
+ * Official website URL
1378
+ */
1379
+ website?: string;
1380
+ /**
1381
+ * Payee description
1382
+ */
1383
+ description?: string;
1384
+ /**
1385
+ * Extended metadata (business hours, contact info, additional details)
1386
+ */
1387
+ meta?: {
1388
+ [key: string]: unknown;
1389
+ };
1390
+ /**
1391
+ * Data source for this profile
1392
+ */
1393
+ dataSource?: 'MANUAL' | 'IMPORT' | 'API' | 'CROWDSOURCED';
1394
+ };
1395
+ /**
1396
+ * Payee category classification
1397
+ */
1398
+ type category = 'RESTAURANT' | 'CAFE' | 'FAST_FOOD' | 'BAR' | 'SUPERMARKET' | 'CONVENIENCE_STORE' | 'SHOPPING_MALL' | 'ONLINE_SHOPPING' | 'TAXI' | 'RIDE_SHARING' | 'PUBLIC_TRANSPORT' | 'PARKING' | 'GAS_STATION' | 'UTILITIES' | 'TELECOM' | 'STREAMING' | 'HEALTHCARE' | 'EDUCATION' | 'ENTERTAINMENT' | 'SPORTS' | 'TRAVEL' | 'HOTEL' | 'OTHER';
1399
+ /**
1400
+ * Data source for this profile
1401
+ */
1402
+ type dataSource = 'MANUAL' | 'IMPORT' | 'API' | 'CROWDSOURCED';
1022
1403
  type PayeeProfileResponseDto = {
1023
1404
  /**
1024
1405
  * Unique identifier (UUID)
@@ -1035,9 +1416,7 @@ type PayeeProfileResponseDto = {
1035
1416
  /**
1036
1417
  * Translation key for i18n
1037
1418
  */
1038
- i18nKey?: {
1039
- [key: string]: unknown;
1040
- } | null;
1419
+ i18nKey?: string | null;
1041
1420
  /**
1042
1421
  * Payee category
1043
1422
  */
@@ -1045,9 +1424,7 @@ type PayeeProfileResponseDto = {
1045
1424
  /**
1046
1425
  * Sub-category
1047
1426
  */
1048
- subCategory?: {
1049
- [key: string]: unknown;
1050
- } | null;
1427
+ subCategory?: string | null;
1051
1428
  /**
1052
1429
  * Country codes where payee operates
1053
1430
  */
@@ -1055,9 +1432,7 @@ type PayeeProfileResponseDto = {
1055
1432
  /**
1056
1433
  * Primary operating country
1057
1434
  */
1058
- primaryCountry?: {
1059
- [key: string]: unknown;
1060
- } | null;
1435
+ primaryCountry?: string | null;
1061
1436
  /**
1062
1437
  * Search keywords
1063
1438
  */
@@ -1065,21 +1440,15 @@ type PayeeProfileResponseDto = {
1065
1440
  /**
1066
1441
  * Logo URL
1067
1442
  */
1068
- logoUrl?: {
1069
- [key: string]: unknown;
1070
- } | null;
1443
+ logoUrl?: string | null;
1071
1444
  /**
1072
1445
  * Official website
1073
1446
  */
1074
- website?: {
1075
- [key: string]: unknown;
1076
- } | null;
1447
+ website?: string | null;
1077
1448
  /**
1078
1449
  * Description
1079
1450
  */
1080
- description?: {
1081
- [key: string]: unknown;
1082
- } | null;
1451
+ description?: string | null;
1083
1452
  /**
1084
1453
  * Extended metadata
1085
1454
  */
@@ -1093,9 +1462,7 @@ type PayeeProfileResponseDto = {
1093
1462
  /**
1094
1463
  * Verification timestamp (null if not verified)
1095
1464
  */
1096
- verifiedAt?: {
1097
- [key: string]: unknown;
1098
- } | null;
1465
+ verifiedAt?: string | null;
1099
1466
  /**
1100
1467
  * Whether the profile is active
1101
1468
  */
@@ -1109,14 +1476,6 @@ type PayeeProfileResponseDto = {
1109
1476
  */
1110
1477
  updatedAt: string;
1111
1478
  };
1112
- /**
1113
- * Payee category
1114
- */
1115
- type category = 'RESTAURANT' | 'CAFE' | 'FAST_FOOD' | 'BAR' | 'SUPERMARKET' | 'CONVENIENCE_STORE' | 'SHOPPING_MALL' | 'ONLINE_SHOPPING' | 'TAXI' | 'RIDE_SHARING' | 'PUBLIC_TRANSPORT' | 'PARKING' | 'GAS_STATION' | 'UTILITIES' | 'TELECOM' | 'STREAMING' | 'HEALTHCARE' | 'EDUCATION' | 'ENTERTAINMENT' | 'SPORTS' | 'TRAVEL' | 'HOTEL' | 'OTHER';
1116
- /**
1117
- * Data source
1118
- */
1119
- type dataSource = 'MANUAL' | 'IMPORT' | 'API' | 'CROWDSOURCED';
1120
1479
  type PayeeProfileListResponseDto = {
1121
1480
  /**
1122
1481
  * List of payee profiles
@@ -1127,6 +1486,82 @@ type PayeeProfileListResponseDto = {
1127
1486
  */
1128
1487
  total: number;
1129
1488
  };
1489
+ type UpdatePayeeProfileDto = {
1490
+ /**
1491
+ * Multi-language aliases for the payee. Used for matching user input in different languages.
1492
+ */
1493
+ aliases?: Array<string>;
1494
+ /**
1495
+ * Translation key for i18n integration (XLIFF translation system)
1496
+ */
1497
+ i18nKey?: string;
1498
+ /**
1499
+ * Payee category classification
1500
+ */
1501
+ category?: 'RESTAURANT' | 'CAFE' | 'FAST_FOOD' | 'BAR' | 'SUPERMARKET' | 'CONVENIENCE_STORE' | 'SHOPPING_MALL' | 'ONLINE_SHOPPING' | 'TAXI' | 'RIDE_SHARING' | 'PUBLIC_TRANSPORT' | 'PARKING' | 'GAS_STATION' | 'UTILITIES' | 'TELECOM' | 'STREAMING' | 'HEALTHCARE' | 'EDUCATION' | 'ENTERTAINMENT' | 'SPORTS' | 'TRAVEL' | 'HOTEL' | 'OTHER';
1502
+ /**
1503
+ * Sub-category for more specific classification
1504
+ */
1505
+ subCategory?: string;
1506
+ /**
1507
+ * Country/region codes where the payee operates (ISO 3166-1 alpha-2)
1508
+ */
1509
+ countries?: Array<string>;
1510
+ /**
1511
+ * Primary operating country (ISO 3166-1 alpha-2)
1512
+ */
1513
+ primaryCountry?: string;
1514
+ /**
1515
+ * Search keywords for fuzzy matching
1516
+ */
1517
+ keywords?: Array<string>;
1518
+ /**
1519
+ * Payee logo URL
1520
+ */
1521
+ logoUrl?: string;
1522
+ /**
1523
+ * Official website URL
1524
+ */
1525
+ website?: string;
1526
+ /**
1527
+ * Payee description
1528
+ */
1529
+ description?: string;
1530
+ /**
1531
+ * Extended metadata (business hours, contact info, additional details)
1532
+ */
1533
+ meta?: {
1534
+ [key: string]: unknown;
1535
+ };
1536
+ /**
1537
+ * Data source for this profile
1538
+ */
1539
+ dataSource?: 'MANUAL' | 'IMPORT' | 'API' | 'CROWDSOURCED';
1540
+ /**
1541
+ * Whether the payee profile is active (soft delete)
1542
+ */
1543
+ isActive?: boolean;
1544
+ /**
1545
+ * Verification timestamp. Set to current time to verify, or null to unverify.
1546
+ */
1547
+ verifiedAt?: string | null;
1548
+ };
1549
+ type CreateCommodityDto = {
1550
+ /**
1551
+ * Commodity symbol (e.g., AAPL, USD, BTC) - corresponds to Beancount currency field
1552
+ */
1553
+ symbol: string;
1554
+ /**
1555
+ * Commodity definition date (ISO 8601, required per Beancount spec). Represents when this commodity was first defined in the accounting system.
1556
+ */
1557
+ date: string;
1558
+ /**
1559
+ * Metadata (corresponds to Beancount meta field). Can contain name, assetClass, precision, note, tags, etc.
1560
+ */
1561
+ metadata?: {
1562
+ [key: string]: unknown;
1563
+ };
1564
+ };
1130
1565
  type CommodityResponseDto = {
1131
1566
  /**
1132
1567
  * Unique identifier
@@ -1135,9 +1570,7 @@ type CommodityResponseDto = {
1135
1570
  /**
1136
1571
  * User ID (owner of the commodity)
1137
1572
  */
1138
- userId?: {
1139
- [key: string]: unknown;
1140
- } | null;
1573
+ userId?: string | null;
1141
1574
  /**
1142
1575
  * Commodity symbol (corresponds to Beancount currency field)
1143
1576
  */
@@ -1152,12 +1585,6 @@ type CommodityResponseDto = {
1152
1585
  metadata: {
1153
1586
  [key: string]: unknown;
1154
1587
  };
1155
- /**
1156
- * Reference to SymbolProfile (market data integration, SaaS feature)
1157
- */
1158
- symbolProfileId?: {
1159
- [key: string]: unknown;
1160
- } | null;
1161
1588
  /**
1162
1589
  * Creation timestamp
1163
1590
  */
@@ -1177,6 +1604,84 @@ type CommodityListResponseDto = {
1177
1604
  */
1178
1605
  total: number;
1179
1606
  };
1607
+ type UpdateCommodityDto = {
1608
+ /**
1609
+ * Commodity definition date (ISO 8601). Represents when this commodity was first defined in the accounting system.
1610
+ */
1611
+ date?: string;
1612
+ /**
1613
+ * Metadata (corresponds to Beancount meta field). Will merge with existing metadata. Can contain name, assetClass, precision, note, tags, etc.
1614
+ */
1615
+ metadata?: {
1616
+ [key: string]: unknown;
1617
+ };
1618
+ };
1619
+ type CreateRecurringRuleDto = {
1620
+ /**
1621
+ * Rule name (unique per user)
1622
+ */
1623
+ name: string;
1624
+ /**
1625
+ * Icon emoji
1626
+ */
1627
+ icon?: string;
1628
+ /**
1629
+ * Recurring frequency
1630
+ */
1631
+ frequency: 'WEEKLY' | 'BIWEEKLY' | 'MONTHLY' | 'BIMONTHLY' | 'QUARTERLY' | 'YEARLY' | 'CUSTOM';
1632
+ /**
1633
+ * Expected amount (positive number)
1634
+ */
1635
+ expectedAmount: number;
1636
+ /**
1637
+ * Expected day of month (1-31)
1638
+ */
1639
+ expectedDay?: number;
1640
+ /**
1641
+ * Custom interval in days (required for CUSTOM frequency)
1642
+ */
1643
+ customIntervalDays?: number;
1644
+ /**
1645
+ * Currency code
1646
+ */
1647
+ currency: string;
1648
+ /**
1649
+ * Payee matching pattern (supports wildcards)
1650
+ */
1651
+ matchPayeePattern?: string;
1652
+ /**
1653
+ * Amount tolerance percentage (0-1)
1654
+ */
1655
+ matchAmountTolerance: number;
1656
+ /**
1657
+ * Default expense account for auto-create
1658
+ */
1659
+ defaultExpenseAccount?: string;
1660
+ /**
1661
+ * Default payment account for auto-create
1662
+ */
1663
+ defaultPaymentAccount?: string;
1664
+ /**
1665
+ * Default payee for auto-create
1666
+ */
1667
+ defaultPayee?: string;
1668
+ /**
1669
+ * Auto-create transaction when expected date arrives
1670
+ */
1671
+ autoCreate: boolean;
1672
+ /**
1673
+ * Rule start date (ISO format)
1674
+ */
1675
+ startDate?: string;
1676
+ /**
1677
+ * Rule end date (ISO format)
1678
+ */
1679
+ endDate?: string;
1680
+ };
1681
+ /**
1682
+ * Recurring frequency
1683
+ */
1684
+ type frequency = 'WEEKLY' | 'BIWEEKLY' | 'MONTHLY' | 'BIMONTHLY' | 'QUARTERLY' | 'YEARLY' | 'CUSTOM';
1180
1685
  type RecurringRuleResponseDto = {
1181
1686
  /**
1182
1687
  * Rule ID
@@ -1285,17 +1790,31 @@ type RecurringRuleResponseDto = {
1285
1790
  */
1286
1791
  updatedAt: string;
1287
1792
  };
1288
- type RecurringRuleWithStatsResponseDto = {
1793
+ type CreateRuleFromTransactionDto = {
1289
1794
  /**
1290
- * Rule ID
1795
+ * Recurring frequency
1291
1796
  */
1292
- id: string;
1797
+ frequency: 'WEEKLY' | 'BIWEEKLY' | 'MONTHLY' | 'BIMONTHLY' | 'QUARTERLY' | 'YEARLY' | 'CUSTOM';
1293
1798
  /**
1294
- * User ID
1799
+ * Optional name override (default: transaction payee)
1295
1800
  */
1296
- userId: string;
1801
+ name?: string;
1297
1802
  /**
1298
- * Rule name
1803
+ * Optional icon emoji
1804
+ */
1805
+ icon?: string;
1806
+ };
1807
+ type RecurringRuleWithStatsResponseDto = {
1808
+ /**
1809
+ * Rule ID
1810
+ */
1811
+ id: string;
1812
+ /**
1813
+ * User ID
1814
+ */
1815
+ userId: string;
1816
+ /**
1817
+ * Rule name
1299
1818
  */
1300
1819
  name: string;
1301
1820
  /**
@@ -1439,6 +1958,68 @@ type RecurringRuleWithStatsResponseDto = {
1439
1958
  */
1440
1959
  upcomingCount: number;
1441
1960
  };
1961
+ type UpdateRecurringRuleDto = {
1962
+ /**
1963
+ * Rule name
1964
+ */
1965
+ name?: string;
1966
+ /**
1967
+ * Icon emoji
1968
+ */
1969
+ icon?: string;
1970
+ /**
1971
+ * Recurring frequency
1972
+ */
1973
+ frequency?: 'WEEKLY' | 'BIWEEKLY' | 'MONTHLY' | 'BIMONTHLY' | 'QUARTERLY' | 'YEARLY' | 'CUSTOM';
1974
+ /**
1975
+ * Expected amount
1976
+ */
1977
+ expectedAmount?: number;
1978
+ /**
1979
+ * Expected day of month (1-31)
1980
+ */
1981
+ expectedDay?: number;
1982
+ /**
1983
+ * Custom interval in days
1984
+ */
1985
+ customIntervalDays?: number;
1986
+ /**
1987
+ * Currency code
1988
+ */
1989
+ currency?: string;
1990
+ /**
1991
+ * Payee matching pattern
1992
+ */
1993
+ matchPayeePattern?: string;
1994
+ /**
1995
+ * Amount tolerance percentage (0-1)
1996
+ */
1997
+ matchAmountTolerance?: number;
1998
+ /**
1999
+ * Default expense account
2000
+ */
2001
+ defaultExpenseAccount?: string;
2002
+ /**
2003
+ * Default payment account
2004
+ */
2005
+ defaultPaymentAccount?: string;
2006
+ /**
2007
+ * Default payee
2008
+ */
2009
+ defaultPayee?: string;
2010
+ /**
2011
+ * Auto-create transaction
2012
+ */
2013
+ autoCreate?: boolean;
2014
+ /**
2015
+ * Rule active status
2016
+ */
2017
+ isActive?: boolean;
2018
+ /**
2019
+ * Rule end date (ISO format)
2020
+ */
2021
+ endDate?: string;
2022
+ };
1442
2023
  type ExpectedTransactionRuleDto = {
1443
2024
  /**
1444
2025
  * Rule name
@@ -1526,6 +2107,34 @@ type ExpectedTransactionListResponseDto = {
1526
2107
  */
1527
2108
  total: number;
1528
2109
  };
2110
+ type ConfirmMatchDto = {
2111
+ /**
2112
+ * Transaction ID to match with
2113
+ */
2114
+ transactionId: string;
2115
+ };
2116
+ type EnterNowDto = {
2117
+ /**
2118
+ * Override expense account (uses rule default if not provided)
2119
+ */
2120
+ expenseAccount?: string;
2121
+ /**
2122
+ * Override payment account (uses rule default if not provided)
2123
+ */
2124
+ paymentAccount?: string;
2125
+ /**
2126
+ * Override amount (uses expected amount if not provided)
2127
+ */
2128
+ amount?: number;
2129
+ /**
2130
+ * Override payee (uses rule default if not provided)
2131
+ */
2132
+ payee?: string;
2133
+ /**
2134
+ * Optional narration
2135
+ */
2136
+ narration?: string;
2137
+ };
1529
2138
  type ForecastItemDto = {
1530
2139
  /**
1531
2140
  * Rule name
@@ -1546,9 +2155,7 @@ type ForecastItemDto = {
1546
2155
  /**
1547
2156
  * Rule icon emoji
1548
2157
  */
1549
- icon: {
1550
- [key: string]: unknown;
1551
- } | null;
2158
+ icon: string | null;
1552
2159
  /**
1553
2160
  * Currency code
1554
2161
  */
@@ -1606,6 +2213,50 @@ type ForecastResponseDto = {
1606
2213
  */
1607
2214
  periodEnd: string;
1608
2215
  };
2216
+ type CreateTransactionRuleDto = {
2217
+ name: string;
2218
+ description?: string;
2219
+ narrationKeywords?: Array<unknown[]>;
2220
+ payeeKeywords?: Array<unknown[]>;
2221
+ categoryKeywords?: Array<unknown[]>;
2222
+ /**
2223
+ * Payment method keywords (e.g., HuaBei, YuEBao)
2224
+ */
2225
+ methodKeywords?: Array<unknown[]>;
2226
+ /**
2227
+ * Destination account for expenses/income (e.g., Expenses:Food:Coffee)
2228
+ */
2229
+ categoryAccount?: string;
2230
+ matchLogic: 'OR' | 'AND';
2231
+ /**
2232
+ * Minimum transaction amount (inclusive)
2233
+ */
2234
+ amountMin?: number;
2235
+ /**
2236
+ * Maximum transaction amount (inclusive)
2237
+ */
2238
+ amountMax?: number;
2239
+ priority: number;
2240
+ additionalTags?: Array<unknown[]>;
2241
+ additionalMetadata?: {
2242
+ [key: string]: unknown;
2243
+ };
2244
+ /**
2245
+ * If true, update existing rule with matching payeeKeywords[0] instead of creating new rule
2246
+ */
2247
+ upsertByPayee?: boolean;
2248
+ };
2249
+ type matchLogic = 'OR' | 'AND';
2250
+ type AmountRangeDto = {
2251
+ /**
2252
+ * Minimum amount
2253
+ */
2254
+ min?: number;
2255
+ /**
2256
+ * Maximum amount
2257
+ */
2258
+ max?: number;
2259
+ };
1609
2260
  type TransactionRuleResponseDto = {
1610
2261
  /**
1611
2262
  * Rule ID
@@ -1646,9 +2297,7 @@ type TransactionRuleResponseDto = {
1646
2297
  /**
1647
2298
  * Amount range for matching
1648
2299
  */
1649
- amountRange?: {
1650
- [key: string]: unknown;
1651
- };
2300
+ amountRange?: AmountRangeDto;
1652
2301
  /**
1653
2302
  * Rule priority (0-1000, higher = first match)
1654
2303
  */
@@ -1660,7 +2309,7 @@ type TransactionRuleResponseDto = {
1660
2309
  /**
1661
2310
  * Learning source: NLP, REVIEW_CENTER, or null for manual
1662
2311
  */
1663
- learningSource?: 'NLP' | 'REVIEW_CENTER';
2312
+ learningSource?: 'NLP' | 'REVIEW_CENTER' | null;
1664
2313
  /**
1665
2314
  * Whether auto-apply is enabled for this rule
1666
2315
  */
@@ -1677,7 +2326,7 @@ type TransactionRuleResponseDto = {
1677
2326
  * Additional metadata
1678
2327
  */
1679
2328
  additionalMetadata?: {
1680
- [key: string]: unknown;
2329
+ [key: string]: string;
1681
2330
  };
1682
2331
  /**
1683
2332
  * Created timestamp
@@ -1688,10 +2337,6 @@ type TransactionRuleResponseDto = {
1688
2337
  */
1689
2338
  updatedAt: string;
1690
2339
  };
1691
- /**
1692
- * Keyword matching logic
1693
- */
1694
- type matchLogic = 'OR' | 'AND';
1695
2340
  /**
1696
2341
  * Learning source: NLP, REVIEW_CENTER, or null for manual
1697
2342
  */
@@ -1758,6 +2403,41 @@ type ValidateRuleResponseDto = {
1758
2403
  */
1759
2404
  warnings: Array<unknown[]>;
1760
2405
  };
2406
+ type BulkCreateRulesDto = {
2407
+ /**
2408
+ * Array of rules to import
2409
+ */
2410
+ rules: Array<unknown[]>;
2411
+ /**
2412
+ * Conflict handling strategy: skip (default) ignores duplicates, replace soft-deletes existing rule
2413
+ */
2414
+ conflictStrategy: 'replace' | 'skip';
2415
+ };
2416
+ /**
2417
+ * Conflict handling strategy: skip (default) ignores duplicates, replace soft-deletes existing rule
2418
+ */
2419
+ type conflictStrategy = 'replace' | 'skip';
2420
+ type BulkCreateRulesResponseDto = {
2421
+ /**
2422
+ * Number of successfully created rules
2423
+ */
2424
+ successCount: number;
2425
+ /**
2426
+ * Number of failed rules
2427
+ */
2428
+ failureCount: number;
2429
+ /**
2430
+ * Error details for failed rules
2431
+ */
2432
+ errors: Array<{
2433
+ index?: number;
2434
+ message?: string;
2435
+ }>;
2436
+ /**
2437
+ * IDs of successfully created rules
2438
+ */
2439
+ createdRuleIds: Array<string>;
2440
+ };
1761
2441
  type ExportRulesResponseDto = {
1762
2442
  /**
1763
2443
  * Export timestamp
@@ -1811,6 +2491,39 @@ type RuleStatisticsResponseDto = {
1811
2491
  * Statistics time period
1812
2492
  */
1813
2493
  type period = '7d' | '30d' | '90d';
2494
+ type UpdateTransactionRuleDto = {
2495
+ name?: string;
2496
+ description?: string;
2497
+ narrationKeywords?: Array<unknown[]>;
2498
+ payeeKeywords?: Array<unknown[]>;
2499
+ categoryKeywords?: Array<unknown[]>;
2500
+ /**
2501
+ * Payment method keywords (e.g., HuaBei, YuEBao)
2502
+ */
2503
+ methodKeywords?: Array<unknown[]>;
2504
+ /**
2505
+ * Destination account for expenses/income (e.g., Expenses:Food:Coffee)
2506
+ */
2507
+ categoryAccount?: string;
2508
+ matchLogic?: 'OR' | 'AND';
2509
+ /**
2510
+ * Minimum transaction amount (inclusive)
2511
+ */
2512
+ amountMin?: number;
2513
+ /**
2514
+ * Maximum transaction amount (inclusive)
2515
+ */
2516
+ amountMax?: number;
2517
+ priority?: number;
2518
+ /**
2519
+ * Enable or disable the rule
2520
+ */
2521
+ enabled?: boolean;
2522
+ additionalTags?: Array<unknown[]>;
2523
+ additionalMetadata?: {
2524
+ [key: string]: unknown;
2525
+ };
2526
+ };
1814
2527
  type TestRuleDto = {
1815
2528
  narration: string;
1816
2529
  payee?: string;
@@ -1944,6 +2657,12 @@ type colorScheme = 'DARK' | 'LIGHT';
1944
2657
  * View mode
1945
2658
  */
1946
2659
  type viewMode = 'DEFAULT' | 'ZEN';
2660
+ type UpdatePropertyDto = {
2661
+ /**
2662
+ * Property value
2663
+ */
2664
+ value: string;
2665
+ };
1947
2666
  type FileImportDto = {
1948
2667
  /**
1949
2668
  * Bill file to import (CSV, PDF, OFX, etc.)
@@ -2152,6 +2871,106 @@ type ImporterConfigDto = {
2152
2871
  * Importer identifier
2153
2872
  */
2154
2873
  type importerId = 'alipay' | 'alipay-web' | 'alipay-yuebao' | 'wechat' | 'wechat-xlsx' | 'boc' | 'boc-credit' | 'ccb' | 'cmb' | 'cmbc' | 'cmbc-credit' | 'icbc' | 'icbc-credit' | 'hsbc-hk-credit' | 'hsbc-hk-debit';
2874
+ type UpdateMapperDefaultsDto = {
2875
+ /**
2876
+ * Source account for transactions (Beancount format)
2877
+ */
2878
+ sourceAccount?: string;
2879
+ /**
2880
+ * Default currency (ISO 4217 code)
2881
+ */
2882
+ currency?: string;
2883
+ /**
2884
+ * Default expense account (optional)
2885
+ */
2886
+ expenseAccount?: string;
2887
+ /**
2888
+ * Default income account (optional)
2889
+ */
2890
+ incomeAccount?: string;
2891
+ /**
2892
+ * Payment method to source account mapping. Maps payment method keywords to Beancount account paths. Used by Alipay/WeChat importers to determine sourceAccount based on payment method (e.g., HuaBei, CreditCard).
2893
+ */
2894
+ methodAccountMapping?: {
2895
+ [key: string]: unknown;
2896
+ };
2897
+ };
2898
+ type UpdateConfigDataDto = {
2899
+ /**
2900
+ * Mapper defaults configuration
2901
+ */
2902
+ defaults?: UpdateMapperDefaultsDto;
2903
+ };
2904
+ type UpdateImporterConfigDto = {
2905
+ /**
2906
+ * Configuration data (v1 schema)
2907
+ */
2908
+ data?: UpdateConfigDataDto;
2909
+ };
2910
+ type CreatePlatformDto = {
2911
+ /**
2912
+ * Platform name
2913
+ */
2914
+ name: string;
2915
+ /**
2916
+ * Platform canonical identifier (lowercase, kebab-case)
2917
+ */
2918
+ canonical: string;
2919
+ /**
2920
+ * Platform aliases (multi-language names for lookup)
2921
+ */
2922
+ aliases: Array<string>;
2923
+ /**
2924
+ * Platform URL
2925
+ */
2926
+ url: string;
2927
+ /**
2928
+ * Platform type
2929
+ */
2930
+ type: 'BANK' | 'BROKERAGE' | 'CRYPTO_EXCHANGE' | 'PAYMENT' | 'INVESTMENT' | 'INSURANCE' | 'OTHER';
2931
+ /**
2932
+ * Platform logo URL
2933
+ */
2934
+ logoUrl?: string;
2935
+ /**
2936
+ * Whether the platform is active
2937
+ */
2938
+ isActive?: boolean;
2939
+ };
2940
+ /**
2941
+ * Platform type
2942
+ */
2943
+ type type3 = 'BANK' | 'BROKERAGE' | 'CRYPTO_EXCHANGE' | 'PAYMENT' | 'INVESTMENT' | 'INSURANCE' | 'OTHER';
2944
+ type UpdatePlatformDto = {
2945
+ /**
2946
+ * Platform name
2947
+ */
2948
+ name?: string;
2949
+ /**
2950
+ * Platform canonical identifier (lowercase, kebab-case)
2951
+ */
2952
+ canonical?: string;
2953
+ /**
2954
+ * Platform aliases (multi-language names for lookup)
2955
+ */
2956
+ aliases?: Array<string>;
2957
+ /**
2958
+ * Platform URL
2959
+ */
2960
+ url?: string;
2961
+ /**
2962
+ * Platform type
2963
+ */
2964
+ type?: 'BANK' | 'BROKERAGE' | 'CRYPTO_EXCHANGE' | 'PAYMENT' | 'INVESTMENT' | 'INSURANCE' | 'OTHER';
2965
+ /**
2966
+ * Platform logo URL
2967
+ */
2968
+ logoUrl?: string;
2969
+ /**
2970
+ * Whether the platform is active
2971
+ */
2972
+ isActive?: boolean;
2973
+ };
2155
2974
  type ProviderSyncConfigDto = {
2156
2975
  /**
2157
2976
  * Source account for the first posting
@@ -2225,6 +3044,7 @@ type SupportedProvidersResponseDto = {
2225
3044
  providers: Array<string>;
2226
3045
  };
2227
3046
  type ParserTelemetryReportDto = unknown;
3047
+ type UncoveredFormatMissDto = unknown;
2228
3048
  type ProcessNlpDto = {
2229
3049
  /**
2230
3050
  * Natural language text describing a transaction (Chinese)
@@ -2234,6 +3054,12 @@ type ProcessNlpDto = {
2234
3054
  * Session ID for multi-turn conversation (auto-generated if not provided)
2235
3055
  */
2236
3056
  sessionId?: string;
3057
+ /**
3058
+ * Parsed data from previous NLP response for session recovery. Send back the parsedData received in confirm_payee/confirm responses.
3059
+ */
3060
+ parsedData?: {
3061
+ [key: string]: unknown;
3062
+ };
2237
3063
  };
2238
3064
  type NlpTransactionInfoDto = {
2239
3065
  /**
@@ -2735,7 +3561,7 @@ type status4 = 'success' | 'pending' | 'error';
2735
3561
  /**
2736
3562
  * Action taken or requested
2737
3563
  */
2738
- type action = 'created' | 'ask' | 'confirm' | 'confirm_duplicate' | 'confirm_rule' | 'confirm_account' | 'confirm_payee' | 'cancel';
3564
+ type action2 = 'created' | 'ask' | 'confirm' | 'confirm_duplicate' | 'confirm_rule' | 'confirm_account' | 'confirm_payee' | 'cancel';
2739
3565
  /**
2740
3566
  * Transaction intent detected by EntityRouter (v6.0: 5 core intents). Frontend uses this to render scenario-specific form fields.
2741
3567
  */
@@ -2953,7 +3779,15 @@ type AccountItemWithAssetClassDto = {
2953
3779
  * Risk level
2954
3780
  */
2955
3781
  riskLevel?: string;
3782
+ /**
3783
+ * ADR-0105 classification provenance (holding level always; account level only on FALLBACK)
3784
+ */
3785
+ source?: 'USER_META' | 'FIAT_CURRENCY' | 'OPENBB_MAPPING' | 'FALLBACK';
2956
3786
  };
3787
+ /**
3788
+ * ADR-0105 classification provenance (holding level always; account level only on FALLBACK)
3789
+ */
3790
+ type source2 = 'USER_META' | 'FIAT_CURRENCY' | 'OPENBB_MAPPING' | 'FALLBACK';
2957
3791
  type AssetClassGroupDto = {
2958
3792
  /**
2959
3793
  * Asset class name
@@ -3015,6 +3849,12 @@ type AssetClassSummaryDto = {
3015
3849
  * Exchange rate warnings
3016
3850
  */
3017
3851
  warnings?: Array<AccountExchangeRateWarningDto>;
3852
+ /**
3853
+ * 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.
3854
+ */
3855
+ fallback?: {
3856
+ [key: string]: unknown;
3857
+ };
3018
3858
  };
3019
3859
  type AssetClassAccountsResponseDto = {
3020
3860
  /**
@@ -3025,12 +3865,60 @@ type AssetClassAccountsResponseDto = {
3025
3865
  * Summary statistics
3026
3866
  */
3027
3867
  summary: AssetClassSummaryDto;
3028
- };
3029
- type CashFlowByCurrencyDto = {
3030
3868
  /**
3031
- * Income by currency
3869
+ * ADR-0105 §6 holding-level grey-area bucket (source=FALLBACK holdings peeled out of groups). Present only for groupBy=holdingAssetClass when FALLBACK holdings exist.
3032
3870
  */
3033
- income: Array<BalanceByCurrencyDto>;
3871
+ uncategorized?: AssetClassGroupDto;
3872
+ };
3873
+ type HoldingAssetClassAccountSliceDto = {
3874
+ /**
3875
+ * Account ID
3876
+ */
3877
+ accountId: string;
3878
+ /**
3879
+ * Full account path
3880
+ */
3881
+ accountPath: string;
3882
+ /**
3883
+ * Currency of the holding with the largest converted base value; undefined when no holding is convertible
3884
+ */
3885
+ accountCurrency?: string;
3886
+ /**
3887
+ * Account's market value in base currency (Σ converted holdings; grey bucket included)
3888
+ */
3889
+ marketValueBase: string;
3890
+ /**
3891
+ * Share of the global total (0-100). 0 when globalTotal is zero (no NaN/Infinity).
3892
+ */
3893
+ shareOfTotalPct: number;
3894
+ /**
3895
+ * Per-account asset-class breakdown
3896
+ */
3897
+ groups: Array<AssetClassGroupDto>;
3898
+ /**
3899
+ * Per-account grey bucket (source=FALLBACK holdings, incl. broker cash)
3900
+ */
3901
+ uncategorized?: AssetClassGroupDto;
3902
+ /**
3903
+ * Every holding row for this account (account ID in each row’s `id` field)
3904
+ */
3905
+ holdings: Array<AccountItemWithAssetClassDto>;
3906
+ };
3907
+ type HoldingAssetClassCrossAccountResponseDto = {
3908
+ /**
3909
+ * Merged cross-account holding aggregation
3910
+ */
3911
+ global: AssetClassAccountsResponseDto;
3912
+ /**
3913
+ * Per-account slices
3914
+ */
3915
+ byAccount: Array<HoldingAssetClassAccountSliceDto>;
3916
+ };
3917
+ type CashFlowByCurrencyDto = {
3918
+ /**
3919
+ * Income by currency
3920
+ */
3921
+ income: Array<BalanceByCurrencyDto>;
3034
3922
  /**
3035
3923
  * Expense by currency
3036
3924
  */
@@ -3102,6 +3990,275 @@ type CashFlowResponseDto = {
3102
3990
  */
3103
3991
  warnings?: Array<ExchangeRateWarningDto>;
3104
3992
  };
3993
+ type MonetaryDto = {
3994
+ /**
3995
+ * Amount (Decimal string)
3996
+ */
3997
+ amount: string;
3998
+ /**
3999
+ * ISO 4217 currency
4000
+ */
4001
+ currency: string;
4002
+ /**
4003
+ * Converted to user base currency (Decimal string)
4004
+ */
4005
+ baseCcyEquivalent?: {
4006
+ [key: string]: unknown;
4007
+ } | null;
4008
+ };
4009
+ type CurrentPriceDto = {
4010
+ /**
4011
+ * Price amount (Decimal string)
4012
+ */
4013
+ amount: string;
4014
+ /**
4015
+ * Price currency (ISO 4217)
4016
+ */
4017
+ currency: string;
4018
+ /**
4019
+ * Price date (ISO 8601)
4020
+ */
4021
+ date: string;
4022
+ /**
4023
+ * Price source
4024
+ */
4025
+ source: 'USER_OVERRIDE' | 'OPENBB_EQUITY' | 'OPENBB_CURRENCY';
4026
+ };
4027
+ /**
4028
+ * Price source
4029
+ */
4030
+ type source3 = 'USER_OVERRIDE' | 'OPENBB_EQUITY' | 'OPENBB_CURRENCY';
4031
+ type FxRateDto = {
4032
+ from: string;
4033
+ to: string;
4034
+ /**
4035
+ * FX rate (Decimal string)
4036
+ */
4037
+ rate: string;
4038
+ /**
4039
+ * Rate date (ISO 8601)
4040
+ */
4041
+ date: string;
4042
+ };
4043
+ type HoldingPnlRowDto = {
4044
+ /**
4045
+ * Account UUID
4046
+ */
4047
+ accountId: string;
4048
+ /**
4049
+ * Full account path
4050
+ */
4051
+ accountPath: string;
4052
+ /**
4053
+ * Account settlement currency (ISO 4217), from cost currency
4054
+ */
4055
+ accountCcy?: {
4056
+ [key: string]: unknown;
4057
+ } | null;
4058
+ /**
4059
+ * Broker type derived from Platform.type
4060
+ */
4061
+ brokerType?: {
4062
+ [key: string]: unknown;
4063
+ } | null;
4064
+ /**
4065
+ * Commodity symbol
4066
+ */
4067
+ symbol: string;
4068
+ /**
4069
+ * Chart segment token (libs/common resolver)
4070
+ */
4071
+ chartToken: 'equity' | 'fund' | 'bond' | 'cash' | 'other';
4072
+ assetClass: string;
4073
+ assetSubClass?: {
4074
+ [key: string]: unknown;
4075
+ } | null;
4076
+ /**
4077
+ * Net held units (Decimal string)
4078
+ */
4079
+ units: string;
4080
+ /**
4081
+ * Average cost per unit; null when cost currency conflicts or no cost
4082
+ */
4083
+ averageCostPerUnit?: MonetaryDto | null;
4084
+ /**
4085
+ * Cost basis of held units
4086
+ */
4087
+ costBasis?: MonetaryDto | null;
4088
+ /**
4089
+ * Market value at asOf price
4090
+ */
4091
+ marketValue?: MonetaryDto | null;
4092
+ /**
4093
+ * Price used for market value
4094
+ */
4095
+ currentPrice?: CurrentPriceDto | null;
4096
+ /**
4097
+ * Unrealized P&L in base currency (Decimal string); null when any FX/price missing
4098
+ */
4099
+ unrealizedPnlBase?: {
4100
+ [key: string]: unknown;
4101
+ } | null;
4102
+ /**
4103
+ * Unrealized P&L % (Decimal string)
4104
+ */
4105
+ unrealizedPnlPct?: {
4106
+ [key: string]: unknown;
4107
+ } | null;
4108
+ /**
4109
+ * Historical FX rate applied to cost basis
4110
+ */
4111
+ costFxRate?: FxRateDto | null;
4112
+ /**
4113
+ * FX rate applied to market value
4114
+ */
4115
+ marketFxRate?: FxRateDto | null;
4116
+ /**
4117
+ * Share of invested assets % (Decimal string); only for invested chartTokens
4118
+ */
4119
+ pctOfInvestedAssets?: {
4120
+ [key: string]: unknown;
4121
+ } | null;
4122
+ /**
4123
+ * 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
4124
+ */
4125
+ realizedPnl?: MonetaryDto | null;
4126
+ };
4127
+ /**
4128
+ * Chart segment token (libs/common resolver)
4129
+ */
4130
+ type chartToken = 'equity' | 'fund' | 'bond' | 'cash' | 'other';
4131
+ type HoldingPnlWarningDto = {
4132
+ /**
4133
+ * Warning type
4134
+ */
4135
+ type: 'MISSING_COST_FX_RATE' | 'MISSING_MARKET_FX_RATE' | 'MISSING_SALE_PRICE' | 'MISSING_REALIZED_FX_RATE' | 'OVERSOLD_LOTS' | 'NO_PRICE' | 'MIXED_COST_CURRENCY';
4136
+ symbol?: {
4137
+ [key: string]: unknown;
4138
+ } | null;
4139
+ accountId?: {
4140
+ [key: string]: unknown;
4141
+ } | null;
4142
+ currency?: {
4143
+ [key: string]: unknown;
4144
+ } | null;
4145
+ };
4146
+ /**
4147
+ * Warning type
4148
+ */
4149
+ type type4 = 'MISSING_COST_FX_RATE' | 'MISSING_MARKET_FX_RATE' | 'MISSING_SALE_PRICE' | 'MISSING_REALIZED_FX_RATE' | 'OVERSOLD_LOTS' | 'NO_PRICE' | 'MIXED_COST_CURRENCY';
4150
+ type HoldingPnlResponseDto = {
4151
+ asOfDate: string;
4152
+ baseCurrency: string;
4153
+ /**
4154
+ * Realized-P&L lot-matching method (FIFO or average). Unrealized cost basis remains average regardless of this value (#473).
4155
+ */
4156
+ method: 'average' | 'FIFO';
4157
+ rows: Array<HoldingPnlRowDto>;
4158
+ warnings: Array<HoldingPnlWarningDto>;
4159
+ };
4160
+ /**
4161
+ * Realized-P&L lot-matching method (FIFO or average). Unrealized cost basis remains average regardless of this value (#473).
4162
+ */
4163
+ type method = 'average' | 'FIFO';
4164
+ type CreateBeanPriceDto = {
4165
+ /**
4166
+ * Currency being priced (e.g., USD, AAPL, BTC)
4167
+ */
4168
+ currency: string;
4169
+ /**
4170
+ * Quote currency (pricing currency, e.g., CNY, EUR)
4171
+ */
4172
+ quoteCurrency: string;
4173
+ /**
4174
+ * Price amount (MUST be >= 0 per Beancount spec, supports up to 15 decimal places). Zero allowed for conversion entries, negative strictly prohibited.
4175
+ */
4176
+ amount: number;
4177
+ /**
4178
+ * Price date (ISO 8601 format)
4179
+ */
4180
+ date: string;
4181
+ /**
4182
+ * Metadata (validated by Zod schema, max field lengths enforced)
4183
+ */
4184
+ metadata?: {
4185
+ [key: string]: unknown;
4186
+ };
4187
+ };
4188
+ type PriceResponseDto = {
4189
+ /**
4190
+ * Unique identifier
4191
+ */
4192
+ id: string;
4193
+ /**
4194
+ * User ID (owner of the price)
4195
+ */
4196
+ userId: string;
4197
+ /**
4198
+ * Currency being priced (e.g., USD, AAPL, BTC)
4199
+ */
4200
+ currency: string;
4201
+ /**
4202
+ * Quote currency (pricing currency, e.g., USD, CNY)
4203
+ */
4204
+ quoteCurrency: string;
4205
+ /**
4206
+ * Price amount (corresponds to Beancount Amount.number). Supports up to 15 decimal places.
4207
+ */
4208
+ amount: number;
4209
+ /**
4210
+ * Price date (ISO 8601 format). Represents the date this price was valid.
4211
+ */
4212
+ date: string;
4213
+ /**
4214
+ * Metadata (corresponds to Beancount meta field). Contains source, confidence, note, etc.
4215
+ */
4216
+ meta: {
4217
+ [key: string]: unknown;
4218
+ };
4219
+ /**
4220
+ * Creation timestamp
4221
+ */
4222
+ createdAt: string;
4223
+ /**
4224
+ * Last update timestamp
4225
+ */
4226
+ updatedAt: string;
4227
+ };
4228
+ type PriceListResponseDto = {
4229
+ /**
4230
+ * List of prices
4231
+ */
4232
+ items: Array<PriceResponseDto>;
4233
+ /**
4234
+ * Total number of prices
4235
+ */
4236
+ total: number;
4237
+ };
4238
+ type UpdateBeanPriceDto = {
4239
+ /**
4240
+ * Currency being priced
4241
+ */
4242
+ currency?: string;
4243
+ /**
4244
+ * Quote currency (pricing currency)
4245
+ */
4246
+ quoteCurrency?: string;
4247
+ /**
4248
+ * Price amount (MUST be >= 0 per Beancount spec)
4249
+ */
4250
+ amount?: number;
4251
+ /**
4252
+ * Price date (ISO 8601 format)
4253
+ */
4254
+ date?: string;
4255
+ /**
4256
+ * Metadata
4257
+ */
4258
+ metadata?: {
4259
+ [key: string]: unknown;
4260
+ };
4261
+ };
3105
4262
  type CurrencyBalanceDto = {
3106
4263
  /**
3107
4264
  * ISO 4217 currency code
@@ -3204,7 +4361,7 @@ type AccountControllerCreateData = {
3204
4361
  /**
3205
4362
  * Region code for tenant context
3206
4363
  */
3207
- region: 'cn' | 'us' | 'de';
4364
+ region: 'cn' | 'us' | 'de' | 'gb';
3208
4365
  requestBody: CreateAccountDto;
3209
4366
  };
3210
4367
  type AccountControllerCreateResponse = AccountResponseDto;
@@ -3224,7 +4381,7 @@ type AccountControllerFindAllData = {
3224
4381
  /**
3225
4382
  * Region code for tenant context
3226
4383
  */
3227
- region: 'cn' | 'us' | 'de';
4384
+ region: 'cn' | 'us' | 'de' | 'gb';
3228
4385
  /**
3229
4386
  * Search term for path or i18nKey
3230
4387
  */
@@ -3247,7 +4404,7 @@ type AccountControllerFindOneData = {
3247
4404
  /**
3248
4405
  * Region code for tenant context
3249
4406
  */
3250
- region: 'cn' | 'us' | 'de';
4407
+ region: 'cn' | 'us' | 'de' | 'gb';
3251
4408
  };
3252
4409
  type AccountControllerFindOneResponse = AccountResponseDto;
3253
4410
  type AccountControllerUpdateData = {
@@ -3258,7 +4415,7 @@ type AccountControllerUpdateData = {
3258
4415
  /**
3259
4416
  * Region code for tenant context
3260
4417
  */
3261
- region: 'cn' | 'us' | 'de';
4418
+ region: 'cn' | 'us' | 'de' | 'gb';
3262
4419
  requestBody: UpdateAccountDto;
3263
4420
  };
3264
4421
  type AccountControllerUpdateResponse = AccountResponseDto;
@@ -3270,7 +4427,7 @@ type AccountControllerDeleteData = {
3270
4427
  /**
3271
4428
  * Region code for tenant context
3272
4429
  */
3273
- region: 'cn' | 'us' | 'de';
4430
+ region: 'cn' | 'us' | 'de' | 'gb';
3274
4431
  };
3275
4432
  type AccountControllerDeleteResponse = void;
3276
4433
  type AccountControllerCloseData = {
@@ -3281,7 +4438,7 @@ type AccountControllerCloseData = {
3281
4438
  /**
3282
4439
  * Region code for tenant context
3283
4440
  */
3284
- region: 'cn' | 'us' | 'de';
4441
+ region: 'cn' | 'us' | 'de' | 'gb';
3285
4442
  requestBody: CloseAccountDto;
3286
4443
  };
3287
4444
  type AccountControllerCloseResponse = AccountResponseDto;
@@ -3293,15 +4450,48 @@ type AccountControllerReopenData = {
3293
4450
  /**
3294
4451
  * Region code for tenant context
3295
4452
  */
3296
- region: 'cn' | 'us' | 'de';
4453
+ region: 'cn' | 'us' | 'de' | 'gb';
3297
4454
  requestBody: ReopenAccountDto;
3298
4455
  };
3299
4456
  type AccountControllerReopenResponse = AccountResponseDto;
4457
+ type AccountStandardsControllerGetTemplatesData = {
4458
+ /**
4459
+ * Region code (cn, us, de)
4460
+ */
4461
+ region: 'cn' | 'us' | 'de' | 'gb';
4462
+ /**
4463
+ * Search term for path or description
4464
+ */
4465
+ search?: string;
4466
+ /**
4467
+ * Filter by account type
4468
+ */
4469
+ type?: 'Assets' | 'Liabilities' | 'Income' | 'Expenses' | 'Equity';
4470
+ };
4471
+ type AccountStandardsControllerGetTemplatesResponse = AccountStandardListResponseDto;
4472
+ type AccountStandardsControllerGetTemplateMetadataData = {
4473
+ /**
4474
+ * Account path to check
4475
+ */
4476
+ path: string;
4477
+ /**
4478
+ * Region code for tenant context
4479
+ */
4480
+ region: 'cn' | 'us' | 'de' | 'gb';
4481
+ };
4482
+ type AccountStandardsControllerGetTemplateMetadataResponse = TemplateMetadataResponseDto;
4483
+ type AccountStandardsControllerGetRegionsData = {
4484
+ /**
4485
+ * Region code for tenant context
4486
+ */
4487
+ region: 'cn' | 'us' | 'de' | 'gb';
4488
+ };
4489
+ type AccountStandardsControllerGetRegionsResponse = RegionsMetadataResponseDto;
3300
4490
  type TransactionControllerCreateData = {
3301
4491
  /**
3302
4492
  * Region code for tenant context
3303
4493
  */
3304
- region: 'cn' | 'us' | 'de';
4494
+ region: 'cn' | 'us' | 'de' | 'gb';
3305
4495
  /**
3306
4496
  * Transaction data with postings
3307
4497
  */
@@ -3332,7 +4522,7 @@ type TransactionControllerListData = {
3332
4522
  /**
3333
4523
  * Region code for tenant context
3334
4524
  */
3335
- region: 'cn' | 'us' | 'de';
4525
+ region: 'cn' | 'us' | 'de' | 'gb';
3336
4526
  /**
3337
4527
  * Search in narration and payee fields (max 200 chars)
3338
4528
  */
@@ -3343,13 +4533,45 @@ type TransactionControllerListData = {
3343
4533
  status?: 'ACTIVE' | 'VOIDED' | 'SUPERSEDED';
3344
4534
  };
3345
4535
  type TransactionControllerListResponse = TransactionListResponseDto;
3346
- type TransactionControllerData = {
4536
+ type TransactionControllerCreateBatchData = {
4537
+ /**
4538
+ * Region code for tenant context
4539
+ */
4540
+ region: 'cn' | 'us' | 'de' | 'gb';
4541
+ requestBody: BatchCreateTransactionDto;
4542
+ };
4543
+ type TransactionControllerCreateBatchResponse = BatchTransactionResponseDto;
4544
+ type TransactionControllerCorrectData = {
4545
+ /**
4546
+ * Original transaction ID to correct
4547
+ */
4548
+ id: string;
4549
+ /**
4550
+ * Region code for tenant context
4551
+ */
4552
+ region: 'cn' | 'us' | 'de' | 'gb';
4553
+ requestBody: CorrectTransactionDto;
4554
+ };
4555
+ type TransactionControllerCorrectResponse = TransactionDetailDto;
4556
+ type TransactionControllerSuggestTagsData = {
4557
+ /**
4558
+ * Max suggestions (1-100, default 10)
4559
+ */
4560
+ limit?: number;
4561
+ /**
4562
+ * Prefix match, case-insensitive (max 50 chars)
4563
+ */
4564
+ q?: string;
3347
4565
  /**
3348
4566
  * Region code for tenant context
3349
4567
  */
3350
- region: 'cn' | 'us' | 'de';
4568
+ region: 'cn' | 'us' | 'de' | 'gb';
4569
+ /**
4570
+ * usage (default) or name
4571
+ */
4572
+ sort?: 'usage' | 'name';
3351
4573
  };
3352
- type TransactionControllerResponse = unknown;
4574
+ type TransactionControllerSuggestTagsResponse = TagSuggestionsResponseDto;
3353
4575
  type TransactionControllerGetDetailData = {
3354
4576
  /**
3355
4577
  * Transaction ID
@@ -3358,7 +4580,7 @@ type TransactionControllerGetDetailData = {
3358
4580
  /**
3359
4581
  * Region code for tenant context
3360
4582
  */
3361
- region: 'cn' | 'us' | 'de';
4583
+ region: 'cn' | 'us' | 'de' | 'gb';
3362
4584
  };
3363
4585
  type TransactionControllerGetDetailResponse = TransactionDetailDto;
3364
4586
  type TransactionControllerUpdateData = {
@@ -3369,41 +4591,29 @@ type TransactionControllerUpdateData = {
3369
4591
  /**
3370
4592
  * Region code for tenant context
3371
4593
  */
3372
- region: 'cn' | 'us' | 'de';
4594
+ region: 'cn' | 'us' | 'de' | 'gb';
3373
4595
  /**
3374
4596
  * Fields to update (all optional)
3375
4597
  */
3376
4598
  requestBody: UpdateTransactionDto;
3377
4599
  };
3378
4600
  type TransactionControllerUpdateResponse = TransactionDetailDto;
3379
- type TransactionController1Data = {
4601
+ type TransactionControllerDeleteData = {
4602
+ /**
4603
+ * Transaction ID
4604
+ */
4605
+ id: string;
3380
4606
  /**
3381
4607
  * Region code for tenant context
3382
4608
  */
3383
- region: 'cn' | 'us' | 'de';
4609
+ region: 'cn' | 'us' | 'de' | 'gb';
3384
4610
  };
3385
- type TransactionController1Response = void;
3386
- type AccountStandardsControllerGetTemplatesData = {
4611
+ type TransactionControllerDeleteResponse = void;
4612
+ type BalanceControllerGetBalanceData = {
3387
4613
  /**
3388
- * Region code (cn, us, de)
4614
+ * Account name (e.g., "Assets:Bank:Checking")
3389
4615
  */
3390
- region: 'cn' | 'us' | 'de';
3391
- /**
3392
- * Search term for path or description
3393
- */
3394
- search?: string;
3395
- /**
3396
- * Filter by account type
3397
- */
3398
- type?: 'Assets' | 'Liabilities' | 'Income' | 'Expenses' | 'Equity';
3399
- };
3400
- type AccountStandardsControllerGetTemplatesResponse = AccountStandardListResponseDto;
3401
- type AccountStandardsControllerGetRegionsResponse = RegionsMetadataResponseDto;
3402
- type BalanceControllerGetBalanceData = {
3403
- /**
3404
- * Account name (e.g., "Assets:Bank:Checking")
3405
- */
3406
- account: string;
4616
+ account: string;
3407
4617
  /**
3408
4618
  * Currency to query (e.g., "USD", "CNY")
3409
4619
  */
@@ -3412,8 +4622,18 @@ type BalanceControllerGetBalanceData = {
3412
4622
  * Date to calculate balance at (ISO 8601 format)
3413
4623
  */
3414
4624
  date?: string;
4625
+ /**
4626
+ * Region code for tenant context
4627
+ */
4628
+ region: 'cn' | 'us' | 'de' | 'gb';
3415
4629
  };
3416
4630
  type BalanceControllerGetBalanceResponse = BalanceResponseDto;
4631
+ type BalanceControllerGetMultiCurrencyBalanceData = {
4632
+ /**
4633
+ * Region code for tenant context
4634
+ */
4635
+ region: 'cn' | 'us' | 'de' | 'gb';
4636
+ };
3417
4637
  type BalanceControllerGetMultiCurrencyBalanceResponse = MultiCurrencyBalanceResponseDto;
3418
4638
  type ReviewControllerFindAllData = {
3419
4639
  /**
@@ -3431,7 +4651,7 @@ type ReviewControllerFindAllData = {
3431
4651
  /**
3432
4652
  * Region code for tenant context
3433
4653
  */
3434
- region: 'cn' | 'us' | 'de';
4654
+ region: 'cn' | 'us' | 'de' | 'gb';
3435
4655
  /**
3436
4656
  * Sort order
3437
4657
  */
@@ -3446,7 +4666,7 @@ type ReviewControllerGetStatsData = {
3446
4666
  /**
3447
4667
  * Region code for tenant context
3448
4668
  */
3449
- region: 'cn' | 'us' | 'de';
4669
+ region: 'cn' | 'us' | 'de' | 'gb';
3450
4670
  };
3451
4671
  type ReviewControllerGetStatsResponse = ReviewStatsDto;
3452
4672
  type ReviewControllerFindOneData = {
@@ -3457,31 +4677,47 @@ type ReviewControllerFindOneData = {
3457
4677
  /**
3458
4678
  * Region code for tenant context
3459
4679
  */
3460
- region: 'cn' | 'us' | 'de';
4680
+ region: 'cn' | 'us' | 'de' | 'gb';
3461
4681
  };
3462
4682
  type ReviewControllerFindOneResponse = ReviewDetailDto;
3463
- type ReviewControllerData = {
4683
+ type ReviewControllerResolveData = {
4684
+ /**
4685
+ * Review ID
4686
+ */
4687
+ id: string;
3464
4688
  /**
3465
4689
  * Region code for tenant context
3466
4690
  */
3467
- region: 'cn' | 'us' | 'de';
4691
+ region: 'cn' | 'us' | 'de' | 'gb';
4692
+ requestBody: ResolveReviewDto;
3468
4693
  };
3469
- type ReviewControllerResponse = unknown;
3470
- type ReviewController1Data = {
4694
+ type ReviewControllerResolveResponse = ResolveResultDto;
4695
+ type ReviewControllerUndoData = {
4696
+ /**
4697
+ * Review ID
4698
+ */
4699
+ id: string;
3471
4700
  /**
3472
4701
  * Region code for tenant context
3473
4702
  */
3474
- region: 'cn' | 'us' | 'de';
4703
+ region: 'cn' | 'us' | 'de' | 'gb';
3475
4704
  };
3476
- type ReviewController1Response = unknown;
3477
- type ReviewController2Data = {
4705
+ type ReviewControllerUndoResponse = UndoResultDto;
4706
+ type ReviewControllerBatchResolveData = {
3478
4707
  /**
3479
4708
  * Region code for tenant context
3480
4709
  */
3481
- region: 'cn' | 'us' | 'de';
4710
+ region: 'cn' | 'us' | 'de' | 'gb';
4711
+ /**
4712
+ * Batch resolution request containing review IDs and action
4713
+ */
4714
+ requestBody: BatchResolveDto;
3482
4715
  };
3483
- type ReviewController2Response = unknown;
3484
- type PayeeControllerResponse = unknown;
4716
+ type ReviewControllerBatchResolveResponse = BatchResolveResultDto;
4717
+ type PayeeControllerCreateData = {
4718
+ requestBody: CreatePayeeDto;
4719
+ };
4720
+ type PayeeControllerCreateResponse = PayeeResponseDto;
3485
4721
  type PayeeControllerFindAllData = {
3486
4722
  /**
3487
4723
  * Filter by custom category
@@ -3530,9 +4766,25 @@ type PayeeControllerFindOneData = {
3530
4766
  id: string;
3531
4767
  };
3532
4768
  type PayeeControllerFindOneResponse = PayeeResponseDto;
3533
- type PayeeController1Response = unknown;
3534
- type PayeeController2Response = void;
3535
- type PayeeProfileAdminControllerResponse = unknown;
4769
+ type PayeeControllerUpdateData = {
4770
+ /**
4771
+ * Payee UUID
4772
+ */
4773
+ id: string;
4774
+ requestBody: UpdatePayeeDto;
4775
+ };
4776
+ type PayeeControllerUpdateResponse = PayeeResponseDto;
4777
+ type PayeeControllerDeleteData = {
4778
+ /**
4779
+ * Payee UUID
4780
+ */
4781
+ id: string;
4782
+ };
4783
+ type PayeeControllerDeleteResponse = void;
4784
+ type PayeeProfileAdminControllerCreateData = {
4785
+ requestBody: CreatePayeeProfileDto;
4786
+ };
4787
+ type PayeeProfileAdminControllerCreateResponse = PayeeProfileResponseDto;
3536
4788
  type PayeeProfileAdminControllerFindAllData = {
3537
4789
  /**
3538
4790
  * Filter by category
@@ -3567,22 +4819,48 @@ type PayeeProfileAdminControllerFindOneData = {
3567
4819
  id: string;
3568
4820
  };
3569
4821
  type PayeeProfileAdminControllerFindOneResponse = PayeeProfileResponseDto;
3570
- type PayeeProfileAdminController1Response = unknown;
3571
- type PayeeProfileAdminController2Response = void;
3572
- type PayeeProfileAdminController3Response = unknown;
3573
- type PayeeProfileAdminController4Response = unknown;
3574
- type CommodityControllerData = {
4822
+ type PayeeProfileAdminControllerUpdateData = {
4823
+ /**
4824
+ * Payee profile ID (UUID)
4825
+ */
4826
+ id: string;
4827
+ requestBody: UpdatePayeeProfileDto;
4828
+ };
4829
+ type PayeeProfileAdminControllerUpdateResponse = PayeeProfileResponseDto;
4830
+ type PayeeProfileAdminControllerDeleteData = {
4831
+ /**
4832
+ * Payee profile ID (UUID)
4833
+ */
4834
+ id: string;
4835
+ };
4836
+ type PayeeProfileAdminControllerDeleteResponse = void;
4837
+ type PayeeProfileAdminControllerVerifyData = {
4838
+ /**
4839
+ * Payee profile ID (UUID)
4840
+ */
4841
+ id: string;
4842
+ };
4843
+ type PayeeProfileAdminControllerVerifyResponse = PayeeProfileResponseDto;
4844
+ type PayeeProfileAdminControllerUnverifyData = {
4845
+ /**
4846
+ * Payee profile ID (UUID)
4847
+ */
4848
+ id: string;
4849
+ };
4850
+ type PayeeProfileAdminControllerUnverifyResponse = PayeeProfileResponseDto;
4851
+ type CommodityControllerCreateData = {
3575
4852
  /**
3576
4853
  * Region code for tenant context
3577
4854
  */
3578
- region: 'cn' | 'us' | 'de';
4855
+ region: 'cn' | 'us' | 'de' | 'gb';
4856
+ requestBody: CreateCommodityDto;
3579
4857
  };
3580
- type CommodityControllerResponse = unknown;
4858
+ type CommodityControllerCreateResponse = CommodityResponseDto;
3581
4859
  type CommodityControllerFindAllData = {
3582
4860
  /**
3583
4861
  * Region code for tenant context
3584
4862
  */
3585
- region: 'cn' | 'us' | 'de';
4863
+ region: 'cn' | 'us' | 'de' | 'gb';
3586
4864
  /**
3587
4865
  * Search term for symbol or metadata fields (partial match). Searches symbol and metadata.name.
3588
4866
  */
@@ -3597,48 +4875,62 @@ type CommodityControllerFindOneData = {
3597
4875
  /**
3598
4876
  * Region code for tenant context
3599
4877
  */
3600
- region: 'cn' | 'us' | 'de';
4878
+ region: 'cn' | 'us' | 'de' | 'gb';
3601
4879
  /**
3602
4880
  * Commodity symbol
3603
4881
  */
3604
4882
  symbol: string;
3605
4883
  };
3606
4884
  type CommodityControllerFindOneResponse = CommodityResponseDto;
3607
- type CommodityController1Data = {
4885
+ type CommodityControllerUpdateData = {
3608
4886
  /**
3609
4887
  * Region code for tenant context
3610
4888
  */
3611
- region: 'cn' | 'us' | 'de';
4889
+ region: 'cn' | 'us' | 'de' | 'gb';
4890
+ requestBody: UpdateCommodityDto;
4891
+ /**
4892
+ * Commodity symbol
4893
+ */
4894
+ symbol: string;
3612
4895
  };
3613
- type CommodityController1Response = unknown;
3614
- type CommodityController2Data = {
4896
+ type CommodityControllerUpdateResponse = CommodityResponseDto;
4897
+ type CommodityControllerDeleteData = {
3615
4898
  /**
3616
4899
  * Region code for tenant context
3617
4900
  */
3618
- region: 'cn' | 'us' | 'de';
4901
+ region: 'cn' | 'us' | 'de' | 'gb';
4902
+ /**
4903
+ * Commodity symbol
4904
+ */
4905
+ symbol: string;
3619
4906
  };
3620
- type CommodityController2Response = void;
3621
- type CommodityController3Data = {
4907
+ type CommodityControllerDeleteResponse = void;
4908
+ type CommodityControllerGetOrCreateData = {
3622
4909
  /**
3623
4910
  * Region code for tenant context
3624
4911
  */
3625
- region: 'cn' | 'us' | 'de';
4912
+ region: 'cn' | 'us' | 'de' | 'gb';
4913
+ /**
4914
+ * Commodity symbol
4915
+ */
4916
+ symbol: string;
3626
4917
  };
3627
- type CommodityController3Response = unknown;
3628
- type CommodityController4Data = {
4918
+ type CommodityControllerGetOrCreateResponse = CommodityResponseDto;
4919
+ type CommodityControllerBulkCreateData = {
3629
4920
  /**
3630
4921
  * Region code for tenant context
3631
4922
  */
3632
- region: 'cn' | 'us' | 'de';
4923
+ region: 'cn' | 'us' | 'de' | 'gb';
3633
4924
  };
3634
- type CommodityController4Response = unknown;
3635
- type RecurringRuleControllerData = {
4925
+ type CommodityControllerBulkCreateResponse = Array<CommodityResponseDto>;
4926
+ type RecurringRuleControllerCreateData = {
3636
4927
  /**
3637
4928
  * Region code for tenant context
3638
4929
  */
3639
- region: 'cn' | 'us' | 'de';
4930
+ region: 'cn' | 'us' | 'de' | 'gb';
4931
+ requestBody: CreateRecurringRuleDto;
3640
4932
  };
3641
- type RecurringRuleControllerResponse = unknown;
4933
+ type RecurringRuleControllerCreateResponse = RecurringRuleResponseDto;
3642
4934
  type RecurringRuleControllerFindAllData = {
3643
4935
  /**
3644
4936
  * Filter by frequency (WEEKLY, MONTHLY, etc.)
@@ -3655,16 +4947,21 @@ type RecurringRuleControllerFindAllData = {
3655
4947
  /**
3656
4948
  * Region code for tenant context
3657
4949
  */
3658
- region: 'cn' | 'us' | 'de';
4950
+ region: 'cn' | 'us' | 'de' | 'gb';
3659
4951
  };
3660
4952
  type RecurringRuleControllerFindAllResponse = Array<RecurringRuleResponseDto>;
3661
- type RecurringRuleController1Data = {
4953
+ type RecurringRuleControllerCreateFromTransactionData = {
3662
4954
  /**
3663
4955
  * Region code for tenant context
3664
4956
  */
3665
- region: 'cn' | 'us' | 'de';
4957
+ region: 'cn' | 'us' | 'de' | 'gb';
4958
+ requestBody: CreateRuleFromTransactionDto;
4959
+ /**
4960
+ * Source transaction ID
4961
+ */
4962
+ transactionId: string;
3666
4963
  };
3667
- type RecurringRuleController1Response = unknown;
4964
+ type RecurringRuleControllerCreateFromTransactionResponse = RecurringRuleResponseDto;
3668
4965
  type RecurringRuleControllerFindOneData = {
3669
4966
  /**
3670
4967
  * Rule ID
@@ -3673,23 +4970,32 @@ type RecurringRuleControllerFindOneData = {
3673
4970
  /**
3674
4971
  * Region code for tenant context
3675
4972
  */
3676
- region: 'cn' | 'us' | 'de';
4973
+ region: 'cn' | 'us' | 'de' | 'gb';
3677
4974
  };
3678
4975
  type RecurringRuleControllerFindOneResponse = RecurringRuleResponseDto;
3679
- type RecurringRuleController2Data = {
4976
+ type RecurringRuleControllerUpdateData = {
4977
+ /**
4978
+ * Rule ID
4979
+ */
4980
+ id: string;
3680
4981
  /**
3681
4982
  * Region code for tenant context
3682
4983
  */
3683
- region: 'cn' | 'us' | 'de';
4984
+ region: 'cn' | 'us' | 'de' | 'gb';
4985
+ requestBody: UpdateRecurringRuleDto;
3684
4986
  };
3685
- type RecurringRuleController2Response = unknown;
3686
- type RecurringRuleController3Data = {
4987
+ type RecurringRuleControllerUpdateResponse = RecurringRuleResponseDto;
4988
+ type RecurringRuleControllerDeleteData = {
4989
+ /**
4990
+ * Rule ID
4991
+ */
4992
+ id: string;
3687
4993
  /**
3688
4994
  * Region code for tenant context
3689
4995
  */
3690
- region: 'cn' | 'us' | 'de';
4996
+ region: 'cn' | 'us' | 'de' | 'gb';
3691
4997
  };
3692
- type RecurringRuleController3Response = void;
4998
+ type RecurringRuleControllerDeleteResponse = void;
3693
4999
  type RecurringRuleControllerGetWithStatsData = {
3694
5000
  /**
3695
5001
  * Rule ID
@@ -3698,7 +5004,7 @@ type RecurringRuleControllerGetWithStatsData = {
3698
5004
  /**
3699
5005
  * Region code for tenant context
3700
5006
  */
3701
- region: 'cn' | 'us' | 'de';
5007
+ region: 'cn' | 'us' | 'de' | 'gb';
3702
5008
  };
3703
5009
  type RecurringRuleControllerGetWithStatsResponse = RecurringRuleWithStatsResponseDto;
3704
5010
  type ExpectedTransactionControllerFindAllData = {
@@ -3709,7 +5015,7 @@ type ExpectedTransactionControllerFindAllData = {
3709
5015
  /**
3710
5016
  * Region code for tenant context
3711
5017
  */
3712
- region: 'cn' | 'us' | 'de';
5018
+ region: 'cn' | 'us' | 'de' | 'gb';
3713
5019
  /**
3714
5020
  * Filter by recurring rule ID
3715
5021
  */
@@ -3728,7 +5034,7 @@ type ExpectedTransactionControllerFindOverdueData = {
3728
5034
  /**
3729
5035
  * Region code for tenant context
3730
5036
  */
3731
- region: 'cn' | 'us' | 'de';
5037
+ region: 'cn' | 'us' | 'de' | 'gb';
3732
5038
  };
3733
5039
  type ExpectedTransactionControllerFindOverdueResponse = ExpectedTransactionListResponseDto;
3734
5040
  type ExpectedTransactionControllerFindOneData = {
@@ -3739,58 +5045,85 @@ type ExpectedTransactionControllerFindOneData = {
3739
5045
  /**
3740
5046
  * Region code for tenant context
3741
5047
  */
3742
- region: 'cn' | 'us' | 'de';
5048
+ region: 'cn' | 'us' | 'de' | 'gb';
3743
5049
  };
3744
5050
  type ExpectedTransactionControllerFindOneResponse = ExpectedTransactionResponseDto;
3745
- type ExpectedTransactionControllerData = {
5051
+ type ExpectedTransactionControllerSkipData = {
5052
+ /**
5053
+ * Expected transaction ID
5054
+ */
5055
+ id: string;
3746
5056
  /**
3747
5057
  * Region code for tenant context
3748
5058
  */
3749
- region: 'cn' | 'us' | 'de';
5059
+ region: 'cn' | 'us' | 'de' | 'gb';
3750
5060
  };
3751
- type ExpectedTransactionControllerResponse = unknown;
3752
- type ExpectedTransactionController1Data = {
5061
+ type ExpectedTransactionControllerSkipResponse = ExpectedTransactionResponseDto;
5062
+ type ExpectedTransactionControllerUndoSkipData = {
5063
+ /**
5064
+ * Expected transaction ID
5065
+ */
5066
+ id: string;
3753
5067
  /**
3754
5068
  * Region code for tenant context
3755
5069
  */
3756
- region: 'cn' | 'us' | 'de';
5070
+ region: 'cn' | 'us' | 'de' | 'gb';
3757
5071
  };
3758
- type ExpectedTransactionController1Response = unknown;
3759
- type ExpectedTransactionController2Data = {
5072
+ type ExpectedTransactionControllerUndoSkipResponse = ExpectedTransactionResponseDto;
5073
+ type ExpectedTransactionControllerConfirmMatchData = {
5074
+ /**
5075
+ * Expected transaction ID
5076
+ */
5077
+ id: string;
3760
5078
  /**
3761
5079
  * Region code for tenant context
3762
5080
  */
3763
- region: 'cn' | 'us' | 'de';
5081
+ region: 'cn' | 'us' | 'de' | 'gb';
5082
+ requestBody: ConfirmMatchDto;
3764
5083
  };
3765
- type ExpectedTransactionController2Response = unknown;
3766
- type ExpectedTransactionController3Data = {
5084
+ type ExpectedTransactionControllerConfirmMatchResponse = unknown;
5085
+ type ExpectedTransactionControllerUnmatchData = {
5086
+ /**
5087
+ * Expected transaction ID
5088
+ */
5089
+ id: string;
3767
5090
  /**
3768
5091
  * Region code for tenant context
3769
5092
  */
3770
- region: 'cn' | 'us' | 'de';
5093
+ region: 'cn' | 'us' | 'de' | 'gb';
3771
5094
  };
3772
- type ExpectedTransactionController3Response = unknown;
3773
- type ExpectedTransactionController4Data = {
5095
+ type ExpectedTransactionControllerUnmatchResponse = unknown;
5096
+ type ExpectedTransactionControllerEnterNowData = {
5097
+ /**
5098
+ * Expected transaction ID
5099
+ */
5100
+ id: string;
3774
5101
  /**
3775
5102
  * Region code for tenant context
3776
5103
  */
3777
- region: 'cn' | 'us' | 'de';
5104
+ region: 'cn' | 'us' | 'de' | 'gb';
5105
+ requestBody: EnterNowDto;
3778
5106
  };
3779
- type ExpectedTransactionController4Response = unknown;
5107
+ type ExpectedTransactionControllerEnterNowResponse = unknown;
3780
5108
  type ForecastControllerGetForecastData = {
3781
5109
  /**
3782
5110
  * Number of months to forecast (1-12, default 3)
3783
5111
  */
3784
5112
  months?: number;
5113
+ /**
5114
+ * Region code for tenant context
5115
+ */
5116
+ region: 'cn' | 'us' | 'de' | 'gb';
3785
5117
  };
3786
5118
  type ForecastControllerGetForecastResponse = ForecastResponseDto;
3787
- type TransactionRuleControllerData = {
5119
+ type TransactionRuleControllerCreateData = {
3788
5120
  /**
3789
5121
  * Region code for tenant context
3790
5122
  */
3791
- region: 'cn' | 'us' | 'de';
5123
+ region: 'cn' | 'us' | 'de' | 'gb';
5124
+ requestBody: CreateTransactionRuleDto;
3792
5125
  };
3793
- type TransactionRuleControllerResponse = unknown;
5126
+ type TransactionRuleControllerCreateResponse = TransactionRuleResponseDto;
3794
5127
  type TransactionRuleControllerListData = {
3795
5128
  /**
3796
5129
  * Filter by auto-apply status
@@ -3815,24 +5148,25 @@ type TransactionRuleControllerListData = {
3815
5148
  /**
3816
5149
  * Region code for tenant context
3817
5150
  */
3818
- region: 'cn' | 'us' | 'de';
5151
+ region: 'cn' | 'us' | 'de' | 'gb';
3819
5152
  };
3820
5153
  type TransactionRuleControllerListResponse = TransactionRuleListResponseDto;
3821
5154
  type TransactionRuleControllerValidateData = {
3822
5155
  /**
3823
5156
  * Region code for tenant context
3824
5157
  */
3825
- region: 'cn' | 'us' | 'de';
5158
+ region: 'cn' | 'us' | 'de' | 'gb';
3826
5159
  requestBody: ValidateRuleDto;
3827
5160
  };
3828
5161
  type TransactionRuleControllerValidateResponse = ValidateRuleResponseDto;
3829
- type TransactionRuleController1Data = {
5162
+ type TransactionRuleControllerBulkCreateData = {
3830
5163
  /**
3831
5164
  * Region code for tenant context
3832
5165
  */
3833
- region: 'cn' | 'us' | 'de';
5166
+ region: 'cn' | 'us' | 'de' | 'gb';
5167
+ requestBody: BulkCreateRulesDto;
3834
5168
  };
3835
- type TransactionRuleController1Response = unknown;
5169
+ type TransactionRuleControllerBulkCreateResponse = BulkCreateRulesResponseDto;
3836
5170
  type TransactionRuleControllerExportData = {
3837
5171
  /**
3838
5172
  * Export format (currently only JSON supported)
@@ -3841,7 +5175,7 @@ type TransactionRuleControllerExportData = {
3841
5175
  /**
3842
5176
  * Region code for tenant context
3843
5177
  */
3844
- region: 'cn' | 'us' | 'de';
5178
+ region: 'cn' | 'us' | 'de' | 'gb';
3845
5179
  };
3846
5180
  type TransactionRuleControllerExportResponse = ExportRulesResponseDto;
3847
5181
  type TransactionRuleControllerGetStatisticsData = {
@@ -3852,39 +5186,48 @@ type TransactionRuleControllerGetStatisticsData = {
3852
5186
  /**
3853
5187
  * Region code for tenant context
3854
5188
  */
3855
- region: 'cn' | 'us' | 'de';
5189
+ region: 'cn' | 'us' | 'de' | 'gb';
3856
5190
  };
3857
5191
  type TransactionRuleControllerGetStatisticsResponse = RuleStatisticsResponseDto;
3858
5192
  type TransactionRuleControllerGetDetailData = {
3859
5193
  /**
3860
5194
  * Region code for tenant context
3861
5195
  */
3862
- region: 'cn' | 'us' | 'de';
5196
+ region: 'cn' | 'us' | 'de' | 'gb';
3863
5197
  /**
3864
5198
  * Rule ID
3865
5199
  */
3866
5200
  ruleId: string;
3867
5201
  };
3868
5202
  type TransactionRuleControllerGetDetailResponse = TransactionRuleResponseDto;
3869
- type TransactionRuleController2Data = {
5203
+ type TransactionRuleControllerUpdateData = {
3870
5204
  /**
3871
5205
  * Region code for tenant context
3872
5206
  */
3873
- region: 'cn' | 'us' | 'de';
5207
+ region: 'cn' | 'us' | 'de' | 'gb';
5208
+ requestBody: UpdateTransactionRuleDto;
5209
+ /**
5210
+ * Rule ID to update
5211
+ */
5212
+ ruleId: string;
3874
5213
  };
3875
- type TransactionRuleController2Response = unknown;
3876
- type TransactionRuleController3Data = {
5214
+ type TransactionRuleControllerUpdateResponse = TransactionRuleResponseDto;
5215
+ type TransactionRuleControllerDeleteData = {
3877
5216
  /**
3878
5217
  * Region code for tenant context
3879
5218
  */
3880
- region: 'cn' | 'us' | 'de';
5219
+ region: 'cn' | 'us' | 'de' | 'gb';
5220
+ /**
5221
+ * Rule ID to delete
5222
+ */
5223
+ ruleId: string;
3881
5224
  };
3882
- type TransactionRuleController3Response = void;
5225
+ type TransactionRuleControllerDeleteResponse = void;
3883
5226
  type TransactionRuleControllerTestData = {
3884
5227
  /**
3885
5228
  * Region code for tenant context
3886
5229
  */
3887
- region: 'cn' | 'us' | 'de';
5230
+ region: 'cn' | 'us' | 'de' | 'gb';
3888
5231
  requestBody: TestRuleDto;
3889
5232
  /**
3890
5233
  * Rule ID to test
@@ -3942,13 +5285,31 @@ type PropertyControllerGetByKeyData = {
3942
5285
  key: string;
3943
5286
  };
3944
5287
  type PropertyControllerGetByKeyResponse = unknown;
3945
- type PropertyControllerResponse = unknown;
3946
- type PropertyController1Response = void;
5288
+ type PropertyControllerUpdateData = {
5289
+ /**
5290
+ * Property key
5291
+ */
5292
+ key: string;
5293
+ requestBody: UpdatePropertyDto;
5294
+ };
5295
+ type PropertyControllerUpdateResponse = unknown;
5296
+ type PropertyControllerDeleteData = {
5297
+ /**
5298
+ * Property key
5299
+ */
5300
+ key: string;
5301
+ };
5302
+ type PropertyControllerDeleteResponse = void;
5303
+ type ExportControllerExportBeancountResponse = unknown;
3947
5304
  type FileImportControllerImportFileData = {
3948
5305
  /**
3949
5306
  * Bill file to import
3950
5307
  */
3951
5308
  formData: FileImportDto;
5309
+ /**
5310
+ * Region code for tenant context
5311
+ */
5312
+ region: 'cn' | 'us' | 'de' | 'gb';
3952
5313
  };
3953
5314
  type FileImportControllerImportFileResponse = ImportResultDto;
3954
5315
  type FileImportControllerIdentifyFileData = {
@@ -3956,8 +5317,31 @@ type FileImportControllerIdentifyFileData = {
3956
5317
  * File to identify
3957
5318
  */
3958
5319
  formData: FileImportDto;
5320
+ /**
5321
+ * Region code for tenant context
5322
+ */
5323
+ region: 'cn' | 'us' | 'de' | 'gb';
3959
5324
  };
3960
5325
  type FileImportControllerIdentifyFileResponse = IdentifyResultDto;
5326
+ type FileImportControllerImportBeancountData = {
5327
+ /**
5328
+ * Beancount file to import
5329
+ */
5330
+ formData: FileImportDto;
5331
+ /**
5332
+ * Region code for tenant context
5333
+ */
5334
+ region: 'cn' | 'us' | 'de' | 'gb';
5335
+ };
5336
+ type FileImportControllerImportBeancountResponse = {
5337
+ imported?: number;
5338
+ skipped?: number;
5339
+ failed?: number;
5340
+ accountsCreated?: number;
5341
+ errors?: Array<{
5342
+ [key: string]: unknown;
5343
+ }>;
5344
+ };
3961
5345
  type ImporterConfigControllerGetConfigData = {
3962
5346
  /**
3963
5347
  * Importer identifier. Supported importers: alipay, alipay-web, wechat, boc, boc-credit, ccb, cmb, cmbc, cmbc-credit, icbc, icbc-credit, hsbc-hk-credit, hsbc-hk-debit
@@ -3966,48 +5350,129 @@ type ImporterConfigControllerGetConfigData = {
3966
5350
  /**
3967
5351
  * Region code for tenant context
3968
5352
  */
3969
- region: 'cn' | 'us' | 'de';
5353
+ region: 'cn' | 'us' | 'de' | 'gb';
3970
5354
  };
3971
5355
  type ImporterConfigControllerGetConfigResponse = ImporterConfigDto;
3972
- type ImporterConfigControllerData = {
5356
+ type ImporterConfigControllerUpdateConfigData = {
5357
+ /**
5358
+ * Importer identifier. Supported importers: alipay, alipay-web, wechat, boc, boc-credit, ccb, cmb, cmbc, cmbc-credit, icbc, icbc-credit, hsbc-hk-credit, hsbc-hk-debit
5359
+ */
5360
+ importerId: string;
3973
5361
  /**
3974
5362
  * Region code for tenant context
3975
5363
  */
3976
- region: 'cn' | 'us' | 'de';
5364
+ region: 'cn' | 'us' | 'de' | 'gb';
5365
+ /**
5366
+ * Partial configuration update. Only provided fields will be updated.
5367
+ */
5368
+ requestBody: UpdateImporterConfigDto;
3977
5369
  };
3978
- type ImporterConfigControllerResponse = unknown;
3979
- type ImporterConfigController1Data = {
5370
+ type ImporterConfigControllerUpdateConfigResponse = ImporterConfigDto;
5371
+ type ImporterConfigControllerResetConfigData = {
5372
+ /**
5373
+ * Importer identifier. Supported importers: alipay, alipay-web, wechat, boc, boc-credit, ccb, cmb, cmbc, cmbc-credit, icbc, icbc-credit, hsbc-hk-credit, hsbc-hk-debit
5374
+ */
5375
+ importerId: string;
3980
5376
  /**
3981
5377
  * Region code for tenant context
3982
5378
  */
3983
- region: 'cn' | 'us' | 'de';
5379
+ region: 'cn' | 'us' | 'de' | 'gb';
3984
5380
  };
3985
- type ImporterConfigController1Response = unknown;
5381
+ type ImporterConfigControllerResetConfigResponse = ImporterConfigDto;
5382
+ type PlatformControllerFindAllResponse = unknown;
5383
+ type PlatformControllerCreateData = {
5384
+ requestBody: CreatePlatformDto;
5385
+ };
5386
+ type PlatformControllerCreateResponse = unknown;
5387
+ type PlatformControllerGetPlatformListResponse = unknown;
5388
+ type PlatformControllerMatchPlatformsData = {
5389
+ /**
5390
+ * Search query — Chinese name, English name, or abbreviation
5391
+ */
5392
+ q: string;
5393
+ /**
5394
+ * Region code for category override lookup
5395
+ */
5396
+ region?: string;
5397
+ };
5398
+ type PlatformControllerMatchPlatformsResponse = unknown;
5399
+ type PlatformControllerUpdateData = {
5400
+ /**
5401
+ * Platform ID
5402
+ */
5403
+ id: string;
5404
+ requestBody: UpdatePlatformDto;
5405
+ };
5406
+ type PlatformControllerUpdateResponse = unknown;
5407
+ type PlatformControllerDeleteData = {
5408
+ /**
5409
+ * Platform ID
5410
+ */
5411
+ id: string;
5412
+ };
5413
+ type PlatformControllerDeleteResponse = void;
3986
5414
  type ProviderSyncControllerSyncData = {
3987
5415
  /**
3988
5416
  * Provider name
3989
5417
  */
3990
5418
  providerName: 'plaid' | 'teller' | 'truelayer' | 'gocardless' | 'simplefin' | 'yodlee' | 'beancount-direct' | 'parsed-bill';
3991
5419
  /**
3992
- * Region code
5420
+ * Region code for tenant context
3993
5421
  */
3994
- region: unknown;
5422
+ region: 'cn' | 'us' | 'de' | 'gb';
3995
5423
  requestBody: ProviderSyncDto;
3996
5424
  };
3997
5425
  type ProviderSyncControllerSyncResponse = ProviderSyncResponseDto;
5426
+ type ProviderSyncControllerGetSupportedProvidersData = {
5427
+ /**
5428
+ * Region code for tenant context
5429
+ */
5430
+ region: 'cn' | 'us' | 'de' | 'gb';
5431
+ };
3998
5432
  type ProviderSyncControllerGetSupportedProvidersResponse = SupportedProvidersResponseDto;
3999
5433
  type ProviderSyncControllerIsProviderSupportedData = {
4000
5434
  /**
4001
5435
  * Provider name to check
4002
5436
  */
4003
5437
  providerName: string;
5438
+ /**
5439
+ * Region code for tenant context
5440
+ */
5441
+ region: 'cn' | 'us' | 'de' | 'gb';
4004
5442
  };
4005
5443
  type ProviderSyncControllerIsProviderSupportedResponse = unknown;
4006
5444
  type TelemetryControllerReportTelemetryData = {
5445
+ /**
5446
+ * Region code for tenant context
5447
+ */
5448
+ region: 'cn' | 'us' | 'de' | 'gb';
4007
5449
  requestBody: ParserTelemetryReportDto;
4008
5450
  };
4009
5451
  type TelemetryControllerReportTelemetryResponse = unknown;
5452
+ type TelemetryControllerReportCoverageMissData = {
5453
+ /**
5454
+ * Region code for tenant context
5455
+ */
5456
+ region: 'cn' | 'us' | 'de' | 'gb';
5457
+ requestBody: UncoveredFormatMissDto;
5458
+ };
5459
+ type TelemetryControllerReportCoverageMissResponse = unknown;
5460
+ type TelemetryControllerGetCoverageMetricsData = {
5461
+ /**
5462
+ * Region code for tenant context
5463
+ */
5464
+ region: 'cn' | 'us' | 'de' | 'gb';
5465
+ /**
5466
+ * Top-N uncovered formats (default 10)
5467
+ */
5468
+ topN?: unknown;
5469
+ };
5470
+ type TelemetryControllerGetCoverageMetricsResponse = unknown;
4010
5471
  type NlpControllerProcessNaturalLanguageData = {
5472
+ /**
5473
+ * Region code for tenant context
5474
+ */
5475
+ region: 'cn' | 'us' | 'de' | 'gb';
4011
5476
  /**
4012
5477
  * Natural language transaction input with optional session ID
4013
5478
  */
@@ -4015,6 +5480,10 @@ type NlpControllerProcessNaturalLanguageData = {
4015
5480
  };
4016
5481
  type NlpControllerProcessNaturalLanguageResponse = NlpResponseDto;
4017
5482
  type NlpControllerClearSessionData = {
5483
+ /**
5484
+ * Region code for tenant context
5485
+ */
5486
+ region: 'cn' | 'us' | 'de' | 'gb';
4018
5487
  /**
4019
5488
  * Specific session ID to clear (defaults to user session)
4020
5489
  */
@@ -4022,97 +5491,161 @@ type NlpControllerClearSessionData = {
4022
5491
  };
4023
5492
  type NlpControllerClearSessionResponse = void;
4024
5493
  type NlpControllerGetSessionData = {
5494
+ /**
5495
+ * Region code for tenant context
5496
+ */
5497
+ region: 'cn' | 'us' | 'de' | 'gb';
4025
5498
  /**
4026
5499
  * Specific session ID to get (defaults to user session)
4027
5500
  */
4028
5501
  sessionId?: string;
4029
5502
  };
4030
5503
  type NlpControllerGetSessionResponse = unknown;
4031
- type PlatformControllerFindAllResponse = unknown;
4032
- type PlatformControllerResponse = unknown;
4033
- type PlatformControllerGetPlatformListResponse = unknown;
4034
- type PlatformController1Response = unknown;
4035
- type PlatformController2Response = void;
4036
- type SymbolControllerLookupSymbolData = {
5504
+ type DashboardControllerGetNetWorthData = {
4037
5505
  /**
4038
- * Geographic area filter (e.g., CN, US)
5506
+ * Date for balance calculation (ISO 8601 format)
4039
5507
  */
4040
- area?: unknown;
5508
+ date?: string;
4041
5509
  /**
4042
- * Asset class filter
5510
+ * Region code for tenant context
4043
5511
  */
4044
- assetClass?: unknown;
5512
+ region: 'cn' | 'us' | 'de' | 'gb';
5513
+ };
5514
+ type DashboardControllerGetNetWorthResponse = NetWorthResponseDto;
5515
+ type DashboardControllerGetAccountsData = {
5516
+ /**
5517
+ * Scope to a single account (only valid with groupBy=holdingAssetClass, ADR-0105 §6)
5518
+ */
5519
+ accountId?: string;
4045
5520
  /**
4046
- * Asset sub-class filter
5521
+ * Date for balance calculation (ISO 8601 format)
4047
5522
  */
4048
- assetSubClass?: unknown;
5523
+ date?: string;
4049
5524
  /**
4050
- * Include index symbols in results
5525
+ * Grouping strategy
4051
5526
  */
4052
- includeIndices?: unknown;
5527
+ groupBy?: 'platform' | 'assetClass' | 'holdingAssetClass' | 'holdingAssetClassByAccount';
4053
5528
  /**
4054
- * Search query string
5529
+ * Region code for tenant context
4055
5530
  */
4056
- query?: unknown;
5531
+ region: 'cn' | 'us' | 'de' | 'gb';
4057
5532
  };
4058
- type SymbolControllerLookupSymbolResponse = unknown;
4059
- type SymbolControllerGetSymbolDataData = {
5533
+ type DashboardControllerGetAccountsResponse = AccountsResponseDto | AssetClassAccountsResponseDto | HoldingAssetClassCrossAccountResponseDto;
5534
+ type DashboardControllerGetCashFlowData = {
4060
5535
  /**
4061
- * Data source provider
5536
+ * Period in YYYY-MM format
4062
5537
  */
4063
- dataSource: 'ALPHA_VANTAGE' | 'EOD_HISTORICAL_DATA' | 'FINANCIAL_MODELING_PREP' | 'MANUAL' | 'RAPID_API' | 'YAHOO' | 'COINGECKO' | 'TUSHARE' | 'BLOOMBERG' | 'CSI' | 'STOOQ' | 'TRADING_VIEW';
5538
+ period: string;
4064
5539
  /**
4065
- * Include historical price data (0 or 1)
5540
+ * Region code for tenant context
4066
5541
  */
4067
- includeHistoricalData?: unknown;
5542
+ region: 'cn' | 'us' | 'de' | 'gb';
5543
+ };
5544
+ type DashboardControllerGetCashFlowResponse = CashFlowResponseDto;
5545
+ type HoldingPnlControllerGetHoldingPnlData = {
4068
5546
  /**
4069
- * Symbol identifier (e.g., ticker code)
5547
+ * Scope to a single account
4070
5548
  */
4071
- symbol: string;
5549
+ accountId?: string;
5550
+ /**
5551
+ * As-of date (ISO 8601), defaults to today
5552
+ */
5553
+ asOf?: string;
5554
+ /**
5555
+ * Realized-P&L lot-matching method (default average). Does not affect the average-cost unrealized basis.
5556
+ */
5557
+ method?: 'FIFO' | 'average';
5558
+ /**
5559
+ * Region code for tenant context
5560
+ */
5561
+ region: 'cn' | 'us' | 'de' | 'gb';
4072
5562
  };
4073
- type SymbolControllerGetSymbolDataResponse = unknown;
4074
- type SymbolControllerGatherSymbolForDateData = {
5563
+ type HoldingPnlControllerGetHoldingPnlResponse = HoldingPnlResponseDto;
5564
+ type PriceControllerCreateData = {
4075
5565
  /**
4076
- * Data source provider
5566
+ * Region code for tenant context
4077
5567
  */
4078
- dataSource: 'ALPHA_VANTAGE' | 'EOD_HISTORICAL_DATA' | 'FINANCIAL_MODELING_PREP' | 'MANUAL' | 'RAPID_API' | 'YAHOO' | 'COINGECKO' | 'TUSHARE' | 'BLOOMBERG' | 'CSI' | 'STOOQ' | 'TRADING_VIEW';
5568
+ region: 'cn' | 'us' | 'de' | 'gb';
5569
+ requestBody: CreateBeanPriceDto;
5570
+ };
5571
+ type PriceControllerCreateResponse = PriceResponseDto;
5572
+ type PriceControllerFindAllData = {
4079
5573
  /**
4080
- * Date in ISO 8601 format (YYYY-MM-DD)
5574
+ * Filter by currency (e.g., BTC, AAPL, USD)
4081
5575
  */
4082
- dateString: string;
5576
+ currency?: string;
4083
5577
  /**
4084
- * Symbol identifier (e.g., ticker code)
5578
+ * Filter prices from this date (ISO 8601 format)
4085
5579
  */
4086
- symbol: string;
5580
+ dateFrom?: string;
5581
+ /**
5582
+ * Filter prices to this date (ISO 8601 format)
5583
+ */
5584
+ dateTo?: string;
5585
+ /**
5586
+ * Number of items per page (default: 20, max: 100)
5587
+ */
5588
+ limit?: number;
5589
+ /**
5590
+ * Page number for pagination (default: 1)
5591
+ */
5592
+ page?: number;
5593
+ /**
5594
+ * Filter by quote currency (pricing currency, e.g., USD, CNY)
5595
+ */
5596
+ quoteCurrency?: string;
5597
+ /**
5598
+ * Region code for tenant context
5599
+ */
5600
+ region: 'cn' | 'us' | 'de' | 'gb';
5601
+ /**
5602
+ * Search term for currency or quoteCurrency (case-insensitive partial match)
5603
+ */
5604
+ search?: string;
4087
5605
  };
4088
- type SymbolControllerGatherSymbolForDateResponse = unknown;
4089
- type SymbolControllerResponse = unknown;
4090
- type CacheControllerFlushCacheResponse = unknown;
4091
- type DashboardControllerGetNetWorthData = {
5606
+ type PriceControllerFindAllResponse = PriceListResponseDto;
5607
+ type PriceControllerFindOneData = {
4092
5608
  /**
4093
- * Date for balance calculation (ISO 8601 format)
5609
+ * Price ID
4094
5610
  */
4095
- date?: string;
5611
+ id: string;
5612
+ /**
5613
+ * Region code for tenant context
5614
+ */
5615
+ region: 'cn' | 'us' | 'de' | 'gb';
4096
5616
  };
4097
- type DashboardControllerGetNetWorthResponse = NetWorthResponseDto;
4098
- type DashboardControllerGetAccountsData = {
5617
+ type PriceControllerFindOneResponse = PriceResponseDto;
5618
+ type PriceControllerUpdateData = {
4099
5619
  /**
4100
- * Date for balance calculation (ISO 8601 format)
5620
+ * Price ID
4101
5621
  */
4102
- date?: string;
5622
+ id: string;
4103
5623
  /**
4104
- * Grouping strategy
5624
+ * Region code for tenant context
4105
5625
  */
4106
- groupBy?: 'platform' | 'assetClass';
5626
+ region: 'cn' | 'us' | 'de' | 'gb';
5627
+ requestBody: UpdateBeanPriceDto;
4107
5628
  };
4108
- type DashboardControllerGetAccountsResponse = AccountsResponseDto | AssetClassAccountsResponseDto;
4109
- type DashboardControllerGetCashFlowData = {
5629
+ type PriceControllerUpdateResponse = PriceResponseDto;
5630
+ type PriceControllerDeleteData = {
4110
5631
  /**
4111
- * Period in YYYY-MM format
5632
+ * Price ID
4112
5633
  */
4113
- period: string;
5634
+ id: string;
5635
+ /**
5636
+ * Region code for tenant context
5637
+ */
5638
+ region: 'cn' | 'us' | 'de' | 'gb';
4114
5639
  };
4115
- type DashboardControllerGetCashFlowResponse = CashFlowResponseDto;
5640
+ type PriceControllerDeleteResponse = void;
5641
+ type PriceControllerBulkCreateData = {
5642
+ /**
5643
+ * Region code for tenant context
5644
+ */
5645
+ region: 'cn' | 'us' | 'de' | 'gb';
5646
+ requestBody: Array<string>;
5647
+ };
5648
+ type PriceControllerBulkCreateResponse = Array<PriceResponseDto>;
4116
5649
  type ReportingControllerGetPortfolioTrendsData = {
4117
5650
  /**
4118
5651
  * Data granularity
@@ -4122,9 +5655,17 @@ type ReportingControllerGetPortfolioTrendsData = {
4122
5655
  * Time period
4123
5656
  */
4124
5657
  period?: '1m' | '3m' | '6m' | '1y';
5658
+ /**
5659
+ * Region code for tenant context
5660
+ */
5661
+ region: 'cn' | 'us' | 'de' | 'gb';
4125
5662
  };
4126
5663
  type ReportingControllerGetPortfolioTrendsResponse = PortfolioTrendsResponseDto;
4127
5664
  type ReportingControllerGenerateSnapshotData = {
5665
+ /**
5666
+ * Region code for tenant context
5667
+ */
5668
+ region: 'cn' | 'us' | 'de' | 'gb';
4128
5669
  /**
4129
5670
  * Optional date (defaults to today)
4130
5671
  */
@@ -4132,14 +5673,19 @@ type ReportingControllerGenerateSnapshotData = {
4132
5673
  };
4133
5674
  type ReportingControllerGenerateSnapshotResponse = GenerateSnapshotResponse;
4134
5675
  type ReportingControllerBackfillSnapshotsData = {
5676
+ /**
5677
+ * Region code for tenant context
5678
+ */
5679
+ region: 'cn' | 'us' | 'de' | 'gb';
4135
5680
  requestBody: BackfillSnapshotsBody;
4136
5681
  };
4137
5682
  type ReportingControllerBackfillSnapshotsResponse = BackfillSnapshotsResponse;
4138
- type ApiKeysControllerResponse = unknown;
5683
+ type ApiKeysControllerCreateApiKeyResponse = unknown;
4139
5684
  type AuthControllerAccessTokenLoginData = {
4140
5685
  requestBody: AnonymousLoginDto;
4141
5686
  };
4142
5687
  type AuthControllerAccessTokenLoginResponse = unknown;
5688
+ type CacheControllerFlushCacheResponse = unknown;
4143
5689
  type ExchangeRateControllerGetExchangeRateData = {
4144
5690
  /**
4145
5691
  * Date in ISO format (YYYY-MM-DD)
@@ -4153,6 +5699,7 @@ type ExchangeRateControllerGetExchangeRateData = {
4153
5699
  type ExchangeRateControllerGetExchangeRateResponse = unknown;
4154
5700
  type HealthControllerGetHealthResponse = unknown;
4155
5701
  type HealthControllerCheckDatabaseResponse = unknown;
5702
+ type HealthControllerCheckOpenBbResponse = unknown;
4156
5703
  type HealthControllerCheckRedisResponse = unknown;
4157
5704
  type HealthControllerGetCircuitBreakersHealthResponse = unknown;
4158
5705
  type HealthControllerResetCircuitBreakerData = {
@@ -4163,52 +5710,7 @@ type HealthControllerResetCircuitBreakerData = {
4163
5710
  };
4164
5711
  type HealthControllerResetCircuitBreakerResponse = unknown;
4165
5712
  type HealthControllerGetMetricsResponse = unknown;
4166
- type HealthControllerGetHealthOfDataEnhancerData = {
4167
- /**
4168
- * Data enhancer name
4169
- */
4170
- name: string;
4171
- };
4172
- type HealthControllerGetHealthOfDataEnhancerResponse = unknown;
4173
- type HealthControllerCheckDataProvidersResponse = unknown;
4174
- type HealthControllerGetHealthOfDataProviderData = {
4175
- /**
4176
- * Data source identifier
4177
- */
4178
- dataSource: string;
4179
- };
4180
- type HealthControllerGetHealthOfDataProviderResponse = unknown;
4181
5713
  type InfoControllerGetInfoResponse = unknown;
4182
- type LogoControllerGetLogoByDataSourceAndSymbolData = {
4183
- /**
4184
- * Data source identifier (e.g., YAHOO, COINGECKO)
4185
- */
4186
- dataSource: string;
4187
- /**
4188
- * Asset symbol (e.g., AAPL, BTC)
4189
- */
4190
- symbol: string;
4191
- };
4192
- type LogoControllerGetLogoByDataSourceAndSymbolResponse = unknown;
4193
- type LogoControllerGetLogoByUrlData = {
4194
- /**
4195
- * Website URL to fetch favicon from
4196
- */
4197
- url: string;
4198
- };
4199
- type LogoControllerGetLogoByUrlResponse = unknown;
4200
- type MarketDataControllerGetMarketDataBySymbolData = {
4201
- /**
4202
- * Data source provider
4203
- */
4204
- dataSource: 'ALPHA_VANTAGE' | 'EOD_HISTORICAL_DATA' | 'FINANCIAL_MODELING_PREP' | 'MANUAL' | 'RAPID_API' | 'YAHOO' | 'COINGECKO' | 'TUSHARE' | 'BLOOMBERG' | 'CSI' | 'STOOQ' | 'TRADING_VIEW';
4205
- /**
4206
- * Symbol code
4207
- */
4208
- symbol: string;
4209
- };
4210
- type MarketDataControllerGetMarketDataBySymbolResponse = unknown;
4211
- type MarketDataControllerResponse = unknown;
4212
5714
  type $OpenApiTs = {
4213
5715
  '/api/v1/{region}/bean/accounts': {
4214
5716
  post: {
@@ -4294,62 +5796,160 @@ type $OpenApiTs = {
4294
5796
  /**
4295
5797
  * Account not found
4296
5798
  */
4297
- 404: unknown;
5799
+ 404: unknown;
5800
+ };
5801
+ };
5802
+ };
5803
+ '/api/v1/{region}/bean/accounts/{id}/reopen': {
5804
+ post: {
5805
+ req: AccountControllerReopenData;
5806
+ res: {
5807
+ /**
5808
+ * Account reopened successfully
5809
+ */
5810
+ 200: AccountResponseDto;
5811
+ /**
5812
+ * Account is not closed
5813
+ */
5814
+ 400: unknown;
5815
+ /**
5816
+ * Account not found
5817
+ */
5818
+ 404: unknown;
5819
+ };
5820
+ };
5821
+ };
5822
+ '/api/v1/{region}/bean/account-standards': {
5823
+ get: {
5824
+ req: AccountStandardsControllerGetTemplatesData;
5825
+ res: {
5826
+ /**
5827
+ * Account templates retrieved successfully
5828
+ */
5829
+ 200: AccountStandardListResponseDto;
5830
+ };
5831
+ };
5832
+ };
5833
+ '/api/v1/{region}/bean/account-standards/template-metadata': {
5834
+ get: {
5835
+ req: AccountStandardsControllerGetTemplateMetadataData;
5836
+ res: {
5837
+ /**
5838
+ * Template metadata retrieved successfully
5839
+ */
5840
+ 200: TemplateMetadataResponseDto;
5841
+ };
5842
+ };
5843
+ };
5844
+ '/api/v1/{region}/bean/account-standards/regions': {
5845
+ get: {
5846
+ req: AccountStandardsControllerGetRegionsData;
5847
+ res: {
5848
+ /**
5849
+ * Regions metadata retrieved successfully
5850
+ */
5851
+ 200: RegionsMetadataResponseDto;
5852
+ };
5853
+ };
5854
+ };
5855
+ '/api/v1/{region}/bean/transactions': {
5856
+ post: {
5857
+ req: TransactionControllerCreateData;
5858
+ res: {
5859
+ /**
5860
+ * Transaction created successfully
5861
+ */
5862
+ 201: TransactionResponseDto;
5863
+ /**
5864
+ * Validation failed
5865
+ */
5866
+ 400: ApiProblemResponseDto;
5867
+ /**
5868
+ * Authentication required
5869
+ */
5870
+ 401: ApiProblemResponseDto;
5871
+ /**
5872
+ * Semantic validation failed (transaction does not balance, invalid accounts)
5873
+ */
5874
+ 422: ApiProblemResponseDto;
5875
+ /**
5876
+ * Unexpected server error
5877
+ */
5878
+ 500: ApiProblemResponseDto;
5879
+ };
5880
+ };
5881
+ get: {
5882
+ req: TransactionControllerListData;
5883
+ res: {
5884
+ /**
5885
+ * Transaction list
5886
+ */
5887
+ 200: TransactionListResponseDto;
5888
+ /**
5889
+ * Validation failed
5890
+ */
5891
+ 400: ApiProblemResponseDto;
5892
+ /**
5893
+ * Authentication required
5894
+ */
5895
+ 401: ApiProblemResponseDto;
4298
5896
  };
4299
5897
  };
4300
5898
  };
4301
- '/api/v1/{region}/bean/accounts/{id}/reopen': {
5899
+ '/api/v1/{region}/bean/transactions/batch': {
4302
5900
  post: {
4303
- req: AccountControllerReopenData;
5901
+ req: TransactionControllerCreateBatchData;
4304
5902
  res: {
4305
5903
  /**
4306
- * Account reopened successfully
5904
+ * Transactions processed
4307
5905
  */
4308
- 200: AccountResponseDto;
5906
+ 201: BatchTransactionResponseDto;
4309
5907
  /**
4310
- * Account is not closed
5908
+ * Invalid input
4311
5909
  */
4312
- 400: unknown;
5910
+ 400: ApiProblemResponseDto;
4313
5911
  /**
4314
- * Account not found
5912
+ * Authentication required
4315
5913
  */
4316
- 404: unknown;
5914
+ 401: ApiProblemResponseDto;
4317
5915
  };
4318
5916
  };
4319
5917
  };
4320
- '/api/v1/{region}/bean/transactions': {
5918
+ '/api/v1/{region}/bean/transactions/{id}/correct': {
4321
5919
  post: {
4322
- req: TransactionControllerCreateData;
5920
+ req: TransactionControllerCorrectData;
4323
5921
  res: {
4324
5922
  /**
4325
- * Transaction created successfully
5923
+ * Corrected transaction created
4326
5924
  */
4327
- 201: TransactionResponseDto;
5925
+ 201: TransactionDetailDto;
4328
5926
  /**
4329
- * Validation failed
5927
+ * Original transaction not found
4330
5928
  */
4331
- 400: ApiProblemResponseDto;
5929
+ 404: ApiProblemResponseDto;
4332
5930
  /**
4333
- * Authentication required
5931
+ * Original no longer ACTIVE (concurrent modification)
4334
5932
  */
4335
- 401: ApiProblemResponseDto;
5933
+ 409: ApiProblemResponseDto;
4336
5934
  /**
4337
- * Semantic validation failed (transaction does not balance, invalid accounts)
5935
+ * Pipeline validation failed (does not balance, invalid accounts)
4338
5936
  */
4339
5937
  422: ApiProblemResponseDto;
4340
- /**
4341
- * Unexpected server error
4342
- */
4343
- 500: ApiProblemResponseDto;
4344
5938
  };
4345
5939
  };
5940
+ };
5941
+ '/api/v1/{region}/bean/transactions/tags': {
4346
5942
  get: {
4347
- req: TransactionControllerListData;
5943
+ req: TransactionControllerSuggestTagsData;
4348
5944
  res: {
4349
5945
  /**
4350
- * Transaction list
5946
+ * Tag suggestions
4351
5947
  */
4352
- 200: TransactionListResponseDto;
5948
+ 200: TagSuggestionsResponseDto;
5949
+ /**
5950
+ * Validation failed
5951
+ */
5952
+ 400: ApiProblemResponseDto;
4353
5953
  /**
4354
5954
  * Authentication required
4355
5955
  */
@@ -4357,14 +5957,6 @@ type $OpenApiTs = {
4357
5957
  };
4358
5958
  };
4359
5959
  };
4360
- '/api/v1/{region}/bean/transactions/batch': {
4361
- post: {
4362
- req: TransactionControllerData;
4363
- res: {
4364
- 201: unknown;
4365
- };
4366
- };
4367
- };
4368
5960
  '/api/v1/{region}/bean/transactions/{id}': {
4369
5961
  get: {
4370
5962
  req: TransactionControllerGetDetailData;
@@ -4405,30 +5997,24 @@ type $OpenApiTs = {
4405
5997
  };
4406
5998
  };
4407
5999
  delete: {
4408
- req: TransactionController1Data;
6000
+ req: TransactionControllerDeleteData;
4409
6001
  res: {
6002
+ /**
6003
+ * Transaction voided successfully
6004
+ */
4410
6005
  204: void;
4411
- };
4412
- };
4413
- };
4414
- '/api/v1/{region}/bean/account-standards': {
4415
- get: {
4416
- req: AccountStandardsControllerGetTemplatesData;
4417
- res: {
4418
6006
  /**
4419
- * Account templates retrieved successfully
6007
+ * Transaction already voided
4420
6008
  */
4421
- 200: AccountStandardListResponseDto;
4422
- };
4423
- };
4424
- };
4425
- '/api/v1/{region}/bean/account-standards/regions': {
4426
- get: {
4427
- res: {
6009
+ 400: ApiProblemResponseDto;
4428
6010
  /**
4429
- * Regions metadata retrieved successfully
6011
+ * Authentication required
4430
6012
  */
4431
- 200: RegionsMetadataResponseDto;
6013
+ 401: ApiProblemResponseDto;
6014
+ /**
6015
+ * Transaction not found
6016
+ */
6017
+ 404: ApiProblemResponseDto;
4432
6018
  };
4433
6019
  };
4434
6020
  };
@@ -4453,6 +6039,7 @@ type $OpenApiTs = {
4453
6039
  };
4454
6040
  '/api/v1/{region}/bean/balances/multi-currency': {
4455
6041
  get: {
6042
+ req: BalanceControllerGetMultiCurrencyBalanceData;
4456
6043
  res: {
4457
6044
  /**
4458
6045
  * Balances calculated successfully
@@ -4495,32 +6082,44 @@ type $OpenApiTs = {
4495
6082
  };
4496
6083
  '/api/v1/{region}/bean/reviews/{id}/resolve': {
4497
6084
  post: {
4498
- req: ReviewControllerData;
6085
+ req: ReviewControllerResolveData;
4499
6086
  res: {
4500
- 201: unknown;
6087
+ 200: ResolveResultDto;
4501
6088
  };
4502
6089
  };
4503
6090
  };
4504
6091
  '/api/v1/{region}/bean/reviews/{id}/undo': {
4505
6092
  post: {
4506
- req: ReviewController1Data;
6093
+ req: ReviewControllerUndoData;
4507
6094
  res: {
4508
- 201: unknown;
6095
+ 200: UndoResultDto;
4509
6096
  };
4510
6097
  };
4511
6098
  };
4512
6099
  '/api/v1/{region}/bean/reviews/batch-resolve': {
4513
6100
  post: {
4514
- req: ReviewController2Data;
6101
+ req: ReviewControllerBatchResolveData;
4515
6102
  res: {
4516
- 201: unknown;
6103
+ 200: BatchResolveResultDto;
4517
6104
  };
4518
6105
  };
4519
6106
  };
4520
6107
  '/api/v1/bean/payees': {
4521
6108
  post: {
6109
+ req: PayeeControllerCreateData;
4522
6110
  res: {
4523
- 201: unknown;
6111
+ /**
6112
+ * Payee created successfully
6113
+ */
6114
+ 201: PayeeResponseDto;
6115
+ /**
6116
+ * Invalid input data
6117
+ */
6118
+ 400: ApiProblemResponseDto;
6119
+ /**
6120
+ * Payee already exists
6121
+ */
6122
+ 409: ApiProblemResponseDto;
4524
6123
  };
4525
6124
  };
4526
6125
  get: {
@@ -4574,20 +6173,56 @@ type $OpenApiTs = {
4574
6173
  };
4575
6174
  };
4576
6175
  put: {
6176
+ req: PayeeControllerUpdateData;
4577
6177
  res: {
4578
- 200: unknown;
6178
+ /**
6179
+ * Payee updated successfully
6180
+ */
6181
+ 200: PayeeResponseDto;
6182
+ /**
6183
+ * Invalid input data
6184
+ */
6185
+ 400: ApiProblemResponseDto;
6186
+ /**
6187
+ * Payee not found
6188
+ */
6189
+ 404: ApiProblemResponseDto;
4579
6190
  };
4580
6191
  };
4581
6192
  delete: {
6193
+ req: PayeeControllerDeleteData;
4582
6194
  res: {
6195
+ /**
6196
+ * Payee deleted successfully
6197
+ */
4583
6198
  204: void;
6199
+ /**
6200
+ * Payee not found
6201
+ */
6202
+ 404: ApiProblemResponseDto;
4584
6203
  };
4585
6204
  };
4586
6205
  };
4587
6206
  '/api/v1/admin/payee-profiles': {
4588
6207
  post: {
6208
+ req: PayeeProfileAdminControllerCreateData;
4589
6209
  res: {
4590
- 201: unknown;
6210
+ /**
6211
+ * Payee profile created successfully
6212
+ */
6213
+ 201: PayeeProfileResponseDto;
6214
+ /**
6215
+ * Validation failed
6216
+ */
6217
+ 400: ApiProblemResponseDto;
6218
+ /**
6219
+ * Admin access required
6220
+ */
6221
+ 403: ApiProblemResponseDto;
6222
+ /**
6223
+ * Payee profile already exists
6224
+ */
6225
+ 409: ApiProblemResponseDto;
4591
6226
  };
4592
6227
  };
4593
6228
  get: {
@@ -4623,33 +6258,96 @@ type $OpenApiTs = {
4623
6258
  };
4624
6259
  };
4625
6260
  put: {
6261
+ req: PayeeProfileAdminControllerUpdateData;
4626
6262
  res: {
4627
- 200: unknown;
6263
+ /**
6264
+ * Payee profile updated successfully
6265
+ */
6266
+ 200: PayeeProfileResponseDto;
6267
+ /**
6268
+ * Admin access required
6269
+ */
6270
+ 403: ApiProblemResponseDto;
6271
+ /**
6272
+ * Payee profile not found
6273
+ */
6274
+ 404: ApiProblemResponseDto;
4628
6275
  };
4629
6276
  };
4630
6277
  delete: {
6278
+ req: PayeeProfileAdminControllerDeleteData;
4631
6279
  res: {
6280
+ /**
6281
+ * Payee profile deleted successfully
6282
+ */
4632
6283
  204: void;
6284
+ /**
6285
+ * Admin access required
6286
+ */
6287
+ 403: ApiProblemResponseDto;
6288
+ /**
6289
+ * Payee profile not found
6290
+ */
6291
+ 404: ApiProblemResponseDto;
6292
+ /**
6293
+ * Payee profile is in use and cannot be deleted
6294
+ */
6295
+ 409: ApiProblemResponseDto;
4633
6296
  };
4634
6297
  };
4635
6298
  };
4636
6299
  '/api/v1/admin/payee-profiles/{id}/verify': {
4637
6300
  post: {
6301
+ req: PayeeProfileAdminControllerVerifyData;
4638
6302
  res: {
4639
- 201: unknown;
6303
+ /**
6304
+ * Payee profile verified successfully
6305
+ */
6306
+ 201: PayeeProfileResponseDto;
6307
+ /**
6308
+ * Admin access required
6309
+ */
6310
+ 403: ApiProblemResponseDto;
6311
+ /**
6312
+ * Payee profile not found
6313
+ */
6314
+ 404: ApiProblemResponseDto;
4640
6315
  };
4641
6316
  };
4642
6317
  delete: {
6318
+ req: PayeeProfileAdminControllerUnverifyData;
4643
6319
  res: {
4644
- 200: unknown;
6320
+ /**
6321
+ * Payee profile unverified successfully
6322
+ */
6323
+ 200: PayeeProfileResponseDto;
6324
+ /**
6325
+ * Admin access required
6326
+ */
6327
+ 403: ApiProblemResponseDto;
6328
+ /**
6329
+ * Payee profile not found
6330
+ */
6331
+ 404: ApiProblemResponseDto;
4645
6332
  };
4646
6333
  };
4647
6334
  };
4648
6335
  '/api/v1/{region}/bean/commodities': {
4649
6336
  post: {
4650
- req: CommodityControllerData;
6337
+ req: CommodityControllerCreateData;
4651
6338
  res: {
4652
- 201: unknown;
6339
+ /**
6340
+ * Commodity created successfully
6341
+ */
6342
+ 201: CommodityResponseDto;
6343
+ /**
6344
+ * Invalid input data
6345
+ */
6346
+ 400: ApiProblemResponseDto;
6347
+ /**
6348
+ * Commodity already exists
6349
+ */
6350
+ 409: ApiProblemResponseDto;
4653
6351
  };
4654
6352
  };
4655
6353
  get: {
@@ -4677,39 +6375,74 @@ type $OpenApiTs = {
4677
6375
  };
4678
6376
  };
4679
6377
  put: {
4680
- req: CommodityController1Data;
6378
+ req: CommodityControllerUpdateData;
4681
6379
  res: {
4682
- 200: unknown;
6380
+ /**
6381
+ * Commodity updated successfully
6382
+ */
6383
+ 200: CommodityResponseDto;
6384
+ /**
6385
+ * Invalid input data
6386
+ */
6387
+ 400: ApiProblemResponseDto;
6388
+ /**
6389
+ * Commodity not found
6390
+ */
6391
+ 404: ApiProblemResponseDto;
4683
6392
  };
4684
6393
  };
4685
6394
  delete: {
4686
- req: CommodityController2Data;
6395
+ req: CommodityControllerDeleteData;
4687
6396
  res: {
6397
+ /**
6398
+ * Commodity deleted successfully
6399
+ */
4688
6400
  204: void;
6401
+ /**
6402
+ * Commodity not found
6403
+ */
6404
+ 404: ApiProblemResponseDto;
4689
6405
  };
4690
6406
  };
4691
6407
  };
4692
6408
  '/api/v1/{region}/bean/commodities/{symbol}/ensure': {
4693
6409
  post: {
4694
- req: CommodityController3Data;
6410
+ req: CommodityControllerGetOrCreateData;
4695
6411
  res: {
4696
- 201: unknown;
6412
+ /**
6413
+ * Commodity retrieved or created
6414
+ */
6415
+ 200: CommodityResponseDto;
4697
6416
  };
4698
6417
  };
4699
6418
  };
4700
6419
  '/api/v1/{region}/bean/commodities/bulk': {
4701
6420
  post: {
4702
- req: CommodityController4Data;
6421
+ req: CommodityControllerBulkCreateData;
4703
6422
  res: {
4704
- 201: unknown;
6423
+ /**
6424
+ * Commodities created successfully
6425
+ */
6426
+ 201: Array<CommodityResponseDto>;
4705
6427
  };
4706
6428
  };
4707
6429
  };
4708
6430
  '/api/v1/{region}/bean/recurring-rules': {
4709
6431
  post: {
4710
- req: RecurringRuleControllerData;
6432
+ req: RecurringRuleControllerCreateData;
4711
6433
  res: {
4712
- 201: unknown;
6434
+ /**
6435
+ * Rule created successfully
6436
+ */
6437
+ 201: RecurringRuleResponseDto;
6438
+ /**
6439
+ * Invalid input data (e.g., autoCreate without accounts)
6440
+ */
6441
+ 400: unknown;
6442
+ /**
6443
+ * Rule with same name already exists
6444
+ */
6445
+ 409: unknown;
4713
6446
  };
4714
6447
  };
4715
6448
  get: {
@@ -4724,9 +6457,20 @@ type $OpenApiTs = {
4724
6457
  };
4725
6458
  '/api/v1/{region}/bean/recurring-rules/from-transaction/{transactionId}': {
4726
6459
  post: {
4727
- req: RecurringRuleController1Data;
6460
+ req: RecurringRuleControllerCreateFromTransactionData;
4728
6461
  res: {
4729
- 201: unknown;
6462
+ /**
6463
+ * Rule created successfully
6464
+ */
6465
+ 201: RecurringRuleResponseDto;
6466
+ /**
6467
+ * Transaction not found
6468
+ */
6469
+ 404: ApiProblemResponseDto;
6470
+ /**
6471
+ * Rule with same name already exists or transaction already linked
6472
+ */
6473
+ 409: ApiProblemResponseDto;
4730
6474
  };
4731
6475
  };
4732
6476
  };
@@ -4745,15 +6489,33 @@ type $OpenApiTs = {
4745
6489
  };
4746
6490
  };
4747
6491
  patch: {
4748
- req: RecurringRuleController2Data;
6492
+ req: RecurringRuleControllerUpdateData;
4749
6493
  res: {
4750
- 200: unknown;
6494
+ /**
6495
+ * Rule updated successfully
6496
+ */
6497
+ 200: RecurringRuleResponseDto;
6498
+ /**
6499
+ * Invalid input data
6500
+ */
6501
+ 400: unknown;
6502
+ /**
6503
+ * Rule not found
6504
+ */
6505
+ 404: unknown;
4751
6506
  };
4752
6507
  };
4753
6508
  delete: {
4754
- req: RecurringRuleController3Data;
6509
+ req: RecurringRuleControllerDeleteData;
4755
6510
  res: {
6511
+ /**
6512
+ * Rule deleted successfully
6513
+ */
4756
6514
  204: void;
6515
+ /**
6516
+ * Rule not found
6517
+ */
6518
+ 404: unknown;
4757
6519
  };
4758
6520
  };
4759
6521
  };
@@ -4811,37 +6573,96 @@ type $OpenApiTs = {
4811
6573
  };
4812
6574
  '/api/v1/{region}/bean/expected-transactions/{id}/skip': {
4813
6575
  post: {
4814
- req: ExpectedTransactionControllerData;
6576
+ req: ExpectedTransactionControllerSkipData;
4815
6577
  res: {
4816
- 200: unknown;
6578
+ /**
6579
+ * Expected transaction skipped successfully
6580
+ */
6581
+ 200: ExpectedTransactionResponseDto;
6582
+ /**
6583
+ * Cannot skip - not in PENDING status
6584
+ */
6585
+ 400: unknown;
6586
+ /**
6587
+ * Expected transaction not found
6588
+ */
6589
+ 404: unknown;
4817
6590
  };
4818
6591
  };
4819
6592
  delete: {
4820
- req: ExpectedTransactionController1Data;
6593
+ req: ExpectedTransactionControllerUndoSkipData;
4821
6594
  res: {
4822
- 200: unknown;
6595
+ /**
6596
+ * Skip undone successfully
6597
+ */
6598
+ 200: ExpectedTransactionResponseDto;
6599
+ /**
6600
+ * Cannot undo - not in SKIPPED status
6601
+ */
6602
+ 400: unknown;
6603
+ /**
6604
+ * Expected transaction not found
6605
+ */
6606
+ 404: unknown;
4823
6607
  };
4824
6608
  };
4825
6609
  };
4826
6610
  '/api/v1/{region}/bean/expected-transactions/{id}/match': {
4827
6611
  post: {
4828
- req: ExpectedTransactionController2Data;
6612
+ req: ExpectedTransactionControllerConfirmMatchData;
4829
6613
  res: {
6614
+ /**
6615
+ * Match confirmed successfully
6616
+ */
4830
6617
  200: unknown;
6618
+ /**
6619
+ * Cannot match - not in PENDING status
6620
+ */
6621
+ 400: unknown;
6622
+ /**
6623
+ * Expected or actual transaction not found
6624
+ */
6625
+ 404: unknown;
6626
+ /**
6627
+ * Actual transaction already matched to another rule
6628
+ */
6629
+ 409: unknown;
4831
6630
  };
4832
6631
  };
4833
6632
  delete: {
4834
- req: ExpectedTransactionController3Data;
6633
+ req: ExpectedTransactionControllerUnmatchData;
4835
6634
  res: {
6635
+ /**
6636
+ * Match removed successfully
6637
+ */
4836
6638
  200: unknown;
6639
+ /**
6640
+ * Cannot unmatch - not in COMPLETED status
6641
+ */
6642
+ 400: unknown;
6643
+ /**
6644
+ * Expected transaction not found
6645
+ */
6646
+ 404: unknown;
4837
6647
  };
4838
6648
  };
4839
6649
  };
4840
6650
  '/api/v1/{region}/bean/expected-transactions/{id}/enter': {
4841
6651
  post: {
4842
- req: ExpectedTransactionController4Data;
6652
+ req: ExpectedTransactionControllerEnterNowData;
4843
6653
  res: {
6654
+ /**
6655
+ * Transaction created successfully
6656
+ */
4844
6657
  201: unknown;
6658
+ /**
6659
+ * Cannot enter - not in PENDING status or missing accounts
6660
+ */
6661
+ 400: unknown;
6662
+ /**
6663
+ * Expected transaction or accounts not found
6664
+ */
6665
+ 404: unknown;
4845
6666
  };
4846
6667
  };
4847
6668
  };
@@ -4858,9 +6679,24 @@ type $OpenApiTs = {
4858
6679
  };
4859
6680
  '/api/v1/{region}/bean/transaction-rules': {
4860
6681
  post: {
4861
- req: TransactionRuleControllerData;
6682
+ req: TransactionRuleControllerCreateData;
4862
6683
  res: {
4863
- 201: unknown;
6684
+ /**
6685
+ * Rule updated successfully (upsert mode)
6686
+ */
6687
+ 200: TransactionRuleResponseDto;
6688
+ /**
6689
+ * Validation failed
6690
+ */
6691
+ 400: ApiProblemResponseDto;
6692
+ /**
6693
+ * Unauthorized
6694
+ */
6695
+ 401: ApiProblemResponseDto;
6696
+ /**
6697
+ * Resource conflict - another process is updating this rule
6698
+ */
6699
+ 409: ApiProblemResponseDto;
4864
6700
  };
4865
6701
  };
4866
6702
  get: {
@@ -4885,6 +6721,10 @@ type $OpenApiTs = {
4885
6721
  * Validation result
4886
6722
  */
4887
6723
  200: ValidateRuleResponseDto;
6724
+ /**
6725
+ * Validation failed
6726
+ */
6727
+ 400: ApiProblemResponseDto;
4888
6728
  /**
4889
6729
  * Unauthorized
4890
6730
  */
@@ -4894,9 +6734,20 @@ type $OpenApiTs = {
4894
6734
  };
4895
6735
  '/api/v1/{region}/bean/transaction-rules/bulk': {
4896
6736
  post: {
4897
- req: TransactionRuleController1Data;
6737
+ req: TransactionRuleControllerBulkCreateData;
4898
6738
  res: {
4899
- 201: unknown;
6739
+ /**
6740
+ * Bulk create completed
6741
+ */
6742
+ 201: BulkCreateRulesResponseDto;
6743
+ /**
6744
+ * Invalid bulk create data
6745
+ */
6746
+ 400: ApiProblemResponseDto;
6747
+ /**
6748
+ * Unauthorized
6749
+ */
6750
+ 401: ApiProblemResponseDto;
4900
6751
  };
4901
6752
  };
4902
6753
  };
@@ -4957,15 +6808,57 @@ type $OpenApiTs = {
4957
6808
  };
4958
6809
  };
4959
6810
  put: {
4960
- req: TransactionRuleController2Data;
6811
+ req: TransactionRuleControllerUpdateData;
4961
6812
  res: {
4962
- 200: unknown;
6813
+ /**
6814
+ * Rule updated successfully
6815
+ */
6816
+ 200: TransactionRuleResponseDto;
6817
+ /**
6818
+ * Validation failed
6819
+ */
6820
+ 400: ApiProblemResponseDto;
6821
+ /**
6822
+ * Unauthorized
6823
+ */
6824
+ 401: ApiProblemResponseDto;
6825
+ /**
6826
+ * Forbidden - not owner of rule
6827
+ */
6828
+ 403: ApiProblemResponseDto;
6829
+ /**
6830
+ * Rule not found
6831
+ */
6832
+ 404: ApiProblemResponseDto;
6833
+ /**
6834
+ * Resource conflict - rule is being modified by another process
6835
+ */
6836
+ 409: ApiProblemResponseDto;
4963
6837
  };
4964
6838
  };
4965
6839
  delete: {
4966
- req: TransactionRuleController3Data;
6840
+ req: TransactionRuleControllerDeleteData;
4967
6841
  res: {
6842
+ /**
6843
+ * Rule deleted successfully
6844
+ */
4968
6845
  204: void;
6846
+ /**
6847
+ * Unauthorized
6848
+ */
6849
+ 401: ApiProblemResponseDto;
6850
+ /**
6851
+ * Forbidden - not owner of rule
6852
+ */
6853
+ 403: ApiProblemResponseDto;
6854
+ /**
6855
+ * Rule not found
6856
+ */
6857
+ 404: ApiProblemResponseDto;
6858
+ /**
6859
+ * Resource conflict - rule is being modified by another process
6860
+ */
6861
+ 409: ApiProblemResponseDto;
4969
6862
  };
4970
6863
  };
4971
6864
  };
@@ -5140,13 +7033,48 @@ type $OpenApiTs = {
5140
7033
  };
5141
7034
  };
5142
7035
  put: {
7036
+ req: PropertyControllerUpdateData;
5143
7037
  res: {
7038
+ /**
7039
+ * Property updated successfully
7040
+ */
5144
7041
  200: unknown;
7042
+ /**
7043
+ * Unauthorized
7044
+ */
7045
+ 401: unknown;
7046
+ /**
7047
+ * Forbidden - insufficient permissions
7048
+ */
7049
+ 403: unknown;
5145
7050
  };
5146
7051
  };
5147
7052
  delete: {
7053
+ req: PropertyControllerDeleteData;
5148
7054
  res: {
7055
+ /**
7056
+ * Property deleted successfully
7057
+ */
5149
7058
  204: void;
7059
+ /**
7060
+ * Unauthorized
7061
+ */
7062
+ 401: unknown;
7063
+ /**
7064
+ * Forbidden - insufficient permissions
7065
+ */
7066
+ 403: unknown;
7067
+ /**
7068
+ * Property not found
7069
+ */
7070
+ 404: unknown;
7071
+ };
7072
+ };
7073
+ };
7074
+ '/api/v1/{region}/bean/export/beancount': {
7075
+ get: {
7076
+ res: {
7077
+ 200: unknown;
5150
7078
  };
5151
7079
  };
5152
7080
  };
@@ -5219,6 +7147,29 @@ type $OpenApiTs = {
5219
7147
  };
5220
7148
  };
5221
7149
  };
7150
+ '/api/v1/{region}/bean/import/beancount': {
7151
+ post: {
7152
+ req: FileImportControllerImportBeancountData;
7153
+ res: {
7154
+ /**
7155
+ * Beancount file imported successfully
7156
+ */
7157
+ 200: {
7158
+ imported?: number;
7159
+ skipped?: number;
7160
+ failed?: number;
7161
+ accountsCreated?: number;
7162
+ errors?: Array<{
7163
+ [key: string]: unknown;
7164
+ }>;
7165
+ };
7166
+ /**
7167
+ * Bad request - invalid file or no file uploaded
7168
+ */
7169
+ 400: ApiProblemResponseDto;
7170
+ };
7171
+ };
7172
+ };
5222
7173
  '/api/v1/{region}/bean/import/config/{importerId}': {
5223
7174
  get: {
5224
7175
  req: ImporterConfigControllerGetConfigData;
@@ -5238,17 +7189,107 @@ type $OpenApiTs = {
5238
7189
  };
5239
7190
  };
5240
7191
  put: {
5241
- req: ImporterConfigControllerData;
7192
+ req: ImporterConfigControllerUpdateConfigData;
5242
7193
  res: {
5243
- 200: unknown;
7194
+ /**
7195
+ * Configuration updated successfully
7196
+ */
7197
+ 200: ImporterConfigDto;
7198
+ /**
7199
+ * Invalid input - Validation failed
7200
+ */
7201
+ 400: ApiProblemResponseDto;
7202
+ /**
7203
+ * Configuration not found
7204
+ */
7205
+ 404: ApiProblemResponseDto;
5244
7206
  };
5245
7207
  };
5246
7208
  };
5247
7209
  '/api/v1/{region}/bean/import/config/{importerId}/reset': {
5248
7210
  post: {
5249
- req: ImporterConfigController1Data;
7211
+ req: ImporterConfigControllerResetConfigData;
7212
+ res: {
7213
+ /**
7214
+ * Configuration reset successfully
7215
+ */
7216
+ 200: ImporterConfigDto;
7217
+ /**
7218
+ * Invalid input - Unsupported importer
7219
+ */
7220
+ 400: ApiProblemResponseDto;
7221
+ };
7222
+ };
7223
+ };
7224
+ '/api/v1/bean/platforms': {
7225
+ get: {
7226
+ res: {
7227
+ /**
7228
+ * List of platforms with binding and account counts
7229
+ */
7230
+ 200: unknown;
7231
+ };
7232
+ };
7233
+ post: {
7234
+ req: PlatformControllerCreateData;
5250
7235
  res: {
7236
+ /**
7237
+ * Platform created successfully
7238
+ */
5251
7239
  201: unknown;
7240
+ /**
7241
+ * Platform already exists
7242
+ */
7243
+ 409: unknown;
7244
+ };
7245
+ };
7246
+ };
7247
+ '/api/v1/bean/platforms/list': {
7248
+ get: {
7249
+ res: {
7250
+ /**
7251
+ * List of platforms with user binding status
7252
+ */
7253
+ 200: unknown;
7254
+ };
7255
+ };
7256
+ };
7257
+ '/api/v1/bean/platforms/match': {
7258
+ get: {
7259
+ req: PlatformControllerMatchPlatformsData;
7260
+ res: {
7261
+ /**
7262
+ * List of matching platforms with suggested segment names
7263
+ */
7264
+ 200: unknown;
7265
+ };
7266
+ };
7267
+ };
7268
+ '/api/v1/bean/platforms/{id}': {
7269
+ put: {
7270
+ req: PlatformControllerUpdateData;
7271
+ res: {
7272
+ /**
7273
+ * Platform updated successfully
7274
+ */
7275
+ 200: unknown;
7276
+ /**
7277
+ * Platform not found
7278
+ */
7279
+ 404: unknown;
7280
+ };
7281
+ };
7282
+ delete: {
7283
+ req: PlatformControllerDeleteData;
7284
+ res: {
7285
+ /**
7286
+ * Platform deleted successfully
7287
+ */
7288
+ 204: void;
7289
+ /**
7290
+ * Platform not found
7291
+ */
7292
+ 404: unknown;
5252
7293
  };
5253
7294
  };
5254
7295
  };
@@ -5277,6 +7318,7 @@ type $OpenApiTs = {
5277
7318
  };
5278
7319
  '/api/v1/{region}/bean/import/provider/supported': {
5279
7320
  get: {
7321
+ req: ProviderSyncControllerGetSupportedProvidersData;
5280
7322
  res: {
5281
7323
  /**
5282
7324
  * List of supported providers
@@ -5319,6 +7361,32 @@ type $OpenApiTs = {
5319
7361
  };
5320
7362
  };
5321
7363
  };
7364
+ '/api/v1/{region}/bean/import/parser-coverage-miss': {
7365
+ post: {
7366
+ req: TelemetryControllerReportCoverageMissData;
7367
+ res: {
7368
+ /**
7369
+ * Coverage miss report received
7370
+ */
7371
+ 200: unknown;
7372
+ /**
7373
+ * Unauthorized
7374
+ */
7375
+ 401: unknown;
7376
+ };
7377
+ };
7378
+ };
7379
+ '/api/v1/{region}/bean/import/parser-coverage-metrics': {
7380
+ get: {
7381
+ req: TelemetryControllerGetCoverageMetricsData;
7382
+ res: {
7383
+ /**
7384
+ * Coverage metrics
7385
+ */
7386
+ 200: unknown;
7387
+ };
7388
+ };
7389
+ };
5322
7390
  '/api/v1/{region}/bean/nlp/process': {
5323
7391
  post: {
5324
7392
  req: NlpControllerProcessNaturalLanguageData;
@@ -5365,157 +7433,156 @@ type $OpenApiTs = {
5365
7433
  401: unknown;
5366
7434
  };
5367
7435
  };
5368
- };
5369
- '/api/v1/bean/platforms': {
5370
- get: {
5371
- res: {
5372
- /**
5373
- * List of platforms with binding and account counts
5374
- */
5375
- 200: unknown;
5376
- };
5377
- };
5378
- post: {
5379
- res: {
5380
- 201: unknown;
5381
- };
5382
- };
5383
- };
5384
- '/api/v1/bean/platforms/list': {
5385
- get: {
5386
- res: {
5387
- /**
5388
- * List of platforms with user binding status
5389
- */
5390
- 200: unknown;
5391
- };
5392
- };
5393
- };
5394
- '/api/v1/bean/platforms/{id}': {
5395
- put: {
5396
- res: {
5397
- 200: unknown;
5398
- };
5399
- };
5400
- delete: {
7436
+ };
7437
+ '/api/v1/{region}/dashboard/net-worth': {
7438
+ get: {
7439
+ req: DashboardControllerGetNetWorthData;
5401
7440
  res: {
5402
- 204: void;
7441
+ /**
7442
+ * Net worth retrieved successfully
7443
+ */
7444
+ 200: NetWorthResponseDto;
7445
+ /**
7446
+ * User not authenticated
7447
+ */
7448
+ 401: unknown;
5403
7449
  };
5404
7450
  };
5405
7451
  };
5406
- '/api/v1/market/symbols/lookup': {
7452
+ '/api/v1/{region}/dashboard/accounts': {
5407
7453
  get: {
5408
- req: SymbolControllerLookupSymbolData;
7454
+ req: DashboardControllerGetAccountsData;
5409
7455
  res: {
5410
7456
  /**
5411
- * Symbols found successfully
7457
+ * Accounts retrieved successfully. Response type depends on groupBy parameter.
5412
7458
  */
5413
- 200: unknown;
7459
+ 200: AccountsResponseDto | AssetClassAccountsResponseDto | HoldingAssetClassCrossAccountResponseDto;
5414
7460
  /**
5415
- * Invalid query parameters
7461
+ * User not authenticated
5416
7462
  */
5417
- 400: unknown;
7463
+ 401: unknown;
5418
7464
  };
5419
7465
  };
5420
7466
  };
5421
- '/api/v1/market/symbols/{dataSource}/{symbol}': {
7467
+ '/api/v1/{region}/dashboard/cash-flow': {
5422
7468
  get: {
5423
- req: SymbolControllerGetSymbolDataData;
7469
+ req: DashboardControllerGetCashFlowData;
5424
7470
  res: {
5425
7471
  /**
5426
- * Symbol data retrieved successfully
7472
+ * Cash flow retrieved successfully
5427
7473
  */
5428
- 200: unknown;
7474
+ 200: CashFlowResponseDto;
5429
7475
  /**
5430
- * Invalid data source
7476
+ * Invalid period format
5431
7477
  */
5432
7478
  400: unknown;
5433
7479
  /**
5434
- * Symbol not found
7480
+ * User not authenticated
5435
7481
  */
5436
- 404: unknown;
7482
+ 401: unknown;
5437
7483
  };
5438
7484
  };
5439
7485
  };
5440
- '/api/v1/market/symbols/{dataSource}/{symbol}/{dateString}': {
7486
+ '/api/v1/{region}/investment/holdings/pnl': {
5441
7487
  get: {
5442
- req: SymbolControllerGatherSymbolForDateData;
7488
+ req: HoldingPnlControllerGetHoldingPnlData;
5443
7489
  res: {
5444
7490
  /**
5445
- * Historical data retrieved successfully
7491
+ * Holding P&L retrieved successfully
5446
7492
  */
5447
- 200: unknown;
7493
+ 200: HoldingPnlResponseDto;
5448
7494
  /**
5449
- * Invalid date format
7495
+ * Invalid asOf format/value/future date, invalid accountId format, or unsupported method
5450
7496
  */
5451
7497
  400: unknown;
5452
7498
  /**
5453
- * Symbol data not found for specified date
7499
+ * User not authenticated
5454
7500
  */
5455
- 404: unknown;
7501
+ 401: unknown;
5456
7502
  };
5457
7503
  };
5458
7504
  };
5459
- '/api/v1/market/symbols/yahoo/batch-update': {
5460
- put: {
7505
+ '/api/v1/{region}/bean/prices': {
7506
+ post: {
7507
+ req: PriceControllerCreateData;
5461
7508
  res: {
5462
- 200: unknown;
7509
+ /**
7510
+ * Price created successfully
7511
+ */
7512
+ 201: PriceResponseDto;
7513
+ /**
7514
+ * Currency or quoteCurrency commodity not found
7515
+ */
7516
+ 404: unknown;
7517
+ /**
7518
+ * Price already exists for this currency pair and date
7519
+ */
7520
+ 409: unknown;
5463
7521
  };
5464
7522
  };
5465
- };
5466
- '/api/v1/cache/flush': {
5467
- post: {
7523
+ get: {
7524
+ req: PriceControllerFindAllData;
5468
7525
  res: {
5469
- 201: unknown;
7526
+ /**
7527
+ * Prices retrieved successfully
7528
+ */
7529
+ 200: PriceListResponseDto;
5470
7530
  };
5471
7531
  };
5472
7532
  };
5473
- '/api/v1/{region}/dashboard/net-worth': {
7533
+ '/api/v1/{region}/bean/prices/{id}': {
5474
7534
  get: {
5475
- req: DashboardControllerGetNetWorthData;
7535
+ req: PriceControllerFindOneData;
5476
7536
  res: {
5477
7537
  /**
5478
- * Net worth retrieved successfully
7538
+ * Price retrieved successfully
5479
7539
  */
5480
- 200: NetWorthResponseDto;
7540
+ 200: PriceResponseDto;
5481
7541
  /**
5482
- * User not authenticated
7542
+ * Price not found
5483
7543
  */
5484
- 401: unknown;
7544
+ 404: unknown;
5485
7545
  };
5486
7546
  };
5487
- };
5488
- '/api/v1/{region}/dashboard/accounts': {
5489
- get: {
5490
- req: DashboardControllerGetAccountsData;
7547
+ put: {
7548
+ req: PriceControllerUpdateData;
5491
7549
  res: {
5492
7550
  /**
5493
- * Accounts retrieved successfully. Response type depends on groupBy parameter.
7551
+ * Price updated successfully
5494
7552
  */
5495
- 200: AccountsResponseDto | AssetClassAccountsResponseDto;
7553
+ 200: PriceResponseDto;
5496
7554
  /**
5497
- * User not authenticated
7555
+ * Price not found
5498
7556
  */
5499
- 401: unknown;
7557
+ 404: unknown;
7558
+ /**
7559
+ * Updated price conflicts with existing price
7560
+ */
7561
+ 409: unknown;
5500
7562
  };
5501
7563
  };
5502
- };
5503
- '/api/v1/{region}/dashboard/cash-flow': {
5504
- get: {
5505
- req: DashboardControllerGetCashFlowData;
7564
+ delete: {
7565
+ req: PriceControllerDeleteData;
5506
7566
  res: {
5507
7567
  /**
5508
- * Cash flow retrieved successfully
7568
+ * Price deleted successfully
5509
7569
  */
5510
- 200: CashFlowResponseDto;
7570
+ 204: void;
5511
7571
  /**
5512
- * Invalid period format
7572
+ * Price not found
5513
7573
  */
5514
- 400: unknown;
7574
+ 404: unknown;
7575
+ };
7576
+ };
7577
+ };
7578
+ '/api/v1/{region}/bean/prices/bulk': {
7579
+ post: {
7580
+ req: PriceControllerBulkCreateData;
7581
+ res: {
5515
7582
  /**
5516
- * User not authenticated
7583
+ * Prices created successfully
5517
7584
  */
5518
- 401: unknown;
7585
+ 201: Array<PriceResponseDto>;
5519
7586
  };
5520
7587
  };
5521
7588
  };
@@ -5579,7 +7646,14 @@ type $OpenApiTs = {
5579
7646
  '/api/v1/auth/api-keys': {
5580
7647
  post: {
5581
7648
  res: {
7649
+ /**
7650
+ * API key created successfully
7651
+ */
5582
7652
  201: unknown;
7653
+ /**
7654
+ * Insufficient permissions to create API key
7655
+ */
7656
+ 403: unknown;
5583
7657
  };
5584
7658
  };
5585
7659
  };
@@ -5598,6 +7672,13 @@ type $OpenApiTs = {
5598
7672
  };
5599
7673
  };
5600
7674
  };
7675
+ '/api/v1/cache/flush': {
7676
+ post: {
7677
+ res: {
7678
+ 201: unknown;
7679
+ };
7680
+ };
7681
+ };
5601
7682
  '/api/v1/market/exchange-rates/{symbol}/{dateString}': {
5602
7683
  get: {
5603
7684
  req: ExchangeRateControllerGetExchangeRateData;
@@ -5641,6 +7722,20 @@ type $OpenApiTs = {
5641
7722
  };
5642
7723
  };
5643
7724
  };
7725
+ '/api/v1/health/openbb': {
7726
+ get: {
7727
+ res: {
7728
+ /**
7729
+ * OpenBB status
7730
+ */
7731
+ 200: unknown;
7732
+ /**
7733
+ * OpenBB unavailable
7734
+ */
7735
+ 503: unknown;
7736
+ };
7737
+ };
7738
+ };
5644
7739
  '/api/v1/health/redis': {
5645
7740
  get: {
5646
7741
  res: {
@@ -5706,66 +7801,6 @@ type $OpenApiTs = {
5706
7801
  };
5707
7802
  };
5708
7803
  };
5709
- '/api/v1/health/data-enhancer/{name}': {
5710
- get: {
5711
- req: HealthControllerGetHealthOfDataEnhancerData;
5712
- res: {
5713
- /**
5714
- * Data enhancer is healthy
5715
- */
5716
- 200: unknown;
5717
- /**
5718
- * Unauthorized
5719
- */
5720
- 401: unknown;
5721
- /**
5722
- * Data enhancer unavailable
5723
- */
5724
- 503: unknown;
5725
- };
5726
- };
5727
- };
5728
- '/api/v1/health/data-providers': {
5729
- get: {
5730
- res: {
5731
- /**
5732
- * Data providers health status
5733
- */
5734
- 200: unknown;
5735
- /**
5736
- * Unauthorized
5737
- */
5738
- 401: unknown;
5739
- /**
5740
- * Data providers check failed
5741
- */
5742
- 503: unknown;
5743
- };
5744
- };
5745
- };
5746
- '/api/v1/health/data-provider/{dataSource}': {
5747
- get: {
5748
- req: HealthControllerGetHealthOfDataProviderData;
5749
- res: {
5750
- /**
5751
- * Data provider is healthy
5752
- */
5753
- 200: unknown;
5754
- /**
5755
- * Invalid data source
5756
- */
5757
- 400: unknown;
5758
- /**
5759
- * Unauthorized
5760
- */
5761
- 401: unknown;
5762
- /**
5763
- * Data provider unavailable
5764
- */
5765
- 503: unknown;
5766
- };
5767
- };
5768
- };
5769
7804
  '/api/v1/system/info': {
5770
7805
  get: {
5771
7806
  res: {
@@ -5776,72 +7811,6 @@ type $OpenApiTs = {
5776
7811
  };
5777
7812
  };
5778
7813
  };
5779
- '/api/v1/market/logos/{dataSource}/{symbol}': {
5780
- get: {
5781
- req: LogoControllerGetLogoByDataSourceAndSymbolData;
5782
- res: {
5783
- /**
5784
- * Logo image stream (favicon)
5785
- */
5786
- 200: unknown;
5787
- /**
5788
- * Unauthorized
5789
- */
5790
- 401: unknown;
5791
- /**
5792
- * Logo not found for the specified asset
5793
- */
5794
- 404: unknown;
5795
- /**
5796
- * Service unavailable
5797
- */
5798
- 503: unknown;
5799
- };
5800
- };
5801
- };
5802
- '/api/v1/market/logos': {
5803
- get: {
5804
- req: LogoControllerGetLogoByUrlData;
5805
- res: {
5806
- /**
5807
- * Logo image stream (favicon)
5808
- */
5809
- 200: unknown;
5810
- /**
5811
- * Unauthorized
5812
- */
5813
- 401: unknown;
5814
- /**
5815
- * Service unavailable
5816
- */
5817
- 503: unknown;
5818
- };
5819
- };
5820
- };
5821
- '/api/v1/market-data/{dataSource}/{symbol}': {
5822
- get: {
5823
- req: MarketDataControllerGetMarketDataBySymbolData;
5824
- res: {
5825
- /**
5826
- * Market data retrieved successfully
5827
- */
5828
- 200: unknown;
5829
- /**
5830
- * Insufficient permissions to read market data
5831
- */
5832
- 403: unknown;
5833
- /**
5834
- * Market data not found
5835
- */
5836
- 404: unknown;
5837
- };
5838
- };
5839
- post: {
5840
- res: {
5841
- 201: unknown;
5842
- };
5843
- };
5844
- };
5845
7814
  };
5846
7815
 
5847
7816
  declare class BeanAccountsService {
@@ -5953,12 +7922,39 @@ declare class BeanTransactionsService {
5953
7922
  */
5954
7923
  static transactionControllerList(data: TransactionControllerListData): CancelablePromise<TransactionControllerListResponse>;
5955
7924
  /**
7925
+ * @deprecated
7926
+ * Batch create transactions (DEPRECATED)
7927
+ * DEPRECATED: Use POST /:region/bean/import/provider/:name/sync instead. This endpoint skips dedup, rule matching, and review branching.
7928
+ * @param data The data for the request.
7929
+ * @param data.region Region code for tenant context
7930
+ * @param data.requestBody
7931
+ * @returns BatchTransactionResponseDto Transactions processed
7932
+ * @throws ApiError
7933
+ */
7934
+ static transactionControllerCreateBatch(data: TransactionControllerCreateBatchData): CancelablePromise<TransactionControllerCreateBatchResponse>;
7935
+ /**
7936
+ * Correct (supersede) a transaction
7937
+ * Atomically voids the original (SUPERSEDED) and creates a replacement through the full validation pipeline.
7938
+ * @param data The data for the request.
7939
+ * @param data.id Original transaction ID to correct
7940
+ * @param data.region Region code for tenant context
7941
+ * @param data.requestBody
7942
+ * @returns TransactionDetailDto Corrected transaction created
7943
+ * @throws ApiError
7944
+ */
7945
+ static transactionControllerCorrect(data: TransactionControllerCorrectData): CancelablePromise<TransactionControllerCorrectResponse>;
7946
+ /**
7947
+ * Suggest transaction tags
7948
+ * Returns distinct tags from the user ACTIVE transactions, sorted by usage, for autocomplete. Optional q performs a case-insensitive prefix match.
5956
7949
  * @param data The data for the request.
5957
7950
  * @param data.region Region code for tenant context
5958
- * @returns unknown
7951
+ * @param data.q Prefix match, case-insensitive (max 50 chars)
7952
+ * @param data.sort usage (default) or name
7953
+ * @param data.limit Max suggestions (1-100, default 10)
7954
+ * @returns TagSuggestionsResponseDto Tag suggestions
5959
7955
  * @throws ApiError
5960
7956
  */
5961
- static transactionController(data: TransactionControllerData): CancelablePromise<TransactionControllerResponse>;
7957
+ static transactionControllerSuggestTags(data: TransactionControllerSuggestTagsData): CancelablePromise<TransactionControllerSuggestTagsResponse>;
5962
7958
  /**
5963
7959
  * Get transaction detail
5964
7960
  * Returns transaction details including all postings
@@ -5981,12 +7977,15 @@ declare class BeanTransactionsService {
5981
7977
  */
5982
7978
  static transactionControllerUpdate(data: TransactionControllerUpdateData): CancelablePromise<TransactionControllerUpdateResponse>;
5983
7979
  /**
7980
+ * Void transaction
7981
+ * Soft-deletes a transaction by marking it as VOIDED
5984
7982
  * @param data The data for the request.
7983
+ * @param data.id Transaction ID
5985
7984
  * @param data.region Region code for tenant context
5986
- * @returns void
7985
+ * @returns void Transaction voided successfully
5987
7986
  * @throws ApiError
5988
7987
  */
5989
- static transactionController1(data: TransactionController1Data): CancelablePromise<TransactionController1Response>;
7988
+ static transactionControllerDelete(data: TransactionControllerDeleteData): CancelablePromise<TransactionControllerDeleteResponse>;
5990
7989
  }
5991
7990
  declare class BeanBalancesService {
5992
7991
  /**
@@ -5994,6 +7993,7 @@ declare class BeanBalancesService {
5994
7993
  * Calculate account balance at a specific date for a single currency
5995
7994
  * @param data The data for the request.
5996
7995
  * @param data.account Account name (e.g., "Assets:Bank:Checking")
7996
+ * @param data.region Region code for tenant context
5997
7997
  * @param data.date Date to calculate balance at (ISO 8601 format)
5998
7998
  * @param data.currency Currency to query (e.g., "USD", "CNY")
5999
7999
  * @returns BalanceResponseDto Balance calculated successfully
@@ -6003,19 +8003,24 @@ declare class BeanBalancesService {
6003
8003
  /**
6004
8004
  * Query multi-currency account balance
6005
8005
  * Calculate account balances for all currencies at a specific date
8006
+ * @param data The data for the request.
8007
+ * @param data.region Region code for tenant context
6006
8008
  * @returns MultiCurrencyBalanceResponseDto Balances calculated successfully
6007
8009
  * @throws ApiError
6008
8010
  */
6009
- static balanceControllerGetMultiCurrencyBalance(): CancelablePromise<BalanceControllerGetMultiCurrencyBalanceResponse>;
8011
+ static balanceControllerGetMultiCurrencyBalance(data: BalanceControllerGetMultiCurrencyBalanceData): CancelablePromise<BalanceControllerGetMultiCurrencyBalanceResponse>;
6010
8012
  }
6011
8013
  declare class BeanCommoditiesService {
6012
8014
  /**
8015
+ * Create a new commodity
8016
+ * Creates a new commodity definition for the authenticated user
6013
8017
  * @param data The data for the request.
6014
8018
  * @param data.region Region code for tenant context
6015
- * @returns unknown
8019
+ * @param data.requestBody
8020
+ * @returns CommodityResponseDto Commodity created successfully
6016
8021
  * @throws ApiError
6017
8022
  */
6018
- static commodityController(data: CommodityControllerData): CancelablePromise<CommodityControllerResponse>;
8023
+ static commodityControllerCreate(data: CommodityControllerCreateData): CancelablePromise<CommodityControllerCreateResponse>;
6019
8024
  /**
6020
8025
  * List user commodities
6021
8026
  * Returns all commodity definitions for the authenticated user with optional filtering
@@ -6038,33 +8043,45 @@ declare class BeanCommoditiesService {
6038
8043
  */
6039
8044
  static commodityControllerFindOne(data: CommodityControllerFindOneData): CancelablePromise<CommodityControllerFindOneResponse>;
6040
8045
  /**
8046
+ * Update commodity
8047
+ * Updates an existing commodity definition. Symbol cannot be changed.
6041
8048
  * @param data The data for the request.
8049
+ * @param data.symbol Commodity symbol
6042
8050
  * @param data.region Region code for tenant context
6043
- * @returns unknown
8051
+ * @param data.requestBody
8052
+ * @returns CommodityResponseDto Commodity updated successfully
6044
8053
  * @throws ApiError
6045
8054
  */
6046
- static commodityController1(data: CommodityController1Data): CancelablePromise<CommodityController1Response>;
8055
+ static commodityControllerUpdate(data: CommodityControllerUpdateData): CancelablePromise<CommodityControllerUpdateResponse>;
6047
8056
  /**
8057
+ * Delete commodity
8058
+ * Deletes a commodity definition
6048
8059
  * @param data The data for the request.
8060
+ * @param data.symbol Commodity symbol
6049
8061
  * @param data.region Region code for tenant context
6050
- * @returns void
8062
+ * @returns void Commodity deleted successfully
6051
8063
  * @throws ApiError
6052
8064
  */
6053
- static commodityController2(data: CommodityController2Data): CancelablePromise<CommodityController2Response>;
8065
+ static commodityControllerDelete(data: CommodityControllerDeleteData): CancelablePromise<CommodityControllerDeleteResponse>;
6054
8066
  /**
8067
+ * Ensure commodity exists
8068
+ * Gets existing commodity or creates it with automatic initialization from OpenBB
6055
8069
  * @param data The data for the request.
8070
+ * @param data.symbol Commodity symbol
6056
8071
  * @param data.region Region code for tenant context
6057
- * @returns unknown
8072
+ * @returns CommodityResponseDto Commodity retrieved or created
6058
8073
  * @throws ApiError
6059
8074
  */
6060
- static commodityController3(data: CommodityController3Data): CancelablePromise<CommodityController3Response>;
8075
+ static commodityControllerGetOrCreate(data: CommodityControllerGetOrCreateData): CancelablePromise<CommodityControllerGetOrCreateResponse>;
6061
8076
  /**
8077
+ * Bulk create commodities
8078
+ * Creates multiple commodities from a list of symbols, useful for initialization
6062
8079
  * @param data The data for the request.
6063
8080
  * @param data.region Region code for tenant context
6064
- * @returns unknown
8081
+ * @returns CommodityResponseDto Commodities created successfully
6065
8082
  * @throws ApiError
6066
8083
  */
6067
- static commodityController4(data: CommodityController4Data): CancelablePromise<CommodityController4Response>;
8084
+ static commodityControllerBulkCreate(data: CommodityControllerBulkCreateData): CancelablePromise<CommodityControllerBulkCreateResponse>;
6068
8085
  }
6069
8086
  declare class ProviderSyncService {
6070
8087
  /**
@@ -6092,7 +8109,7 @@ declare class ProviderSyncService {
6092
8109
  *
6093
8110
  * @param data The data for the request.
6094
8111
  * @param data.providerName Provider name
6095
- * @param data.region Region code
8112
+ * @param data.region Region code for tenant context
6096
8113
  * @param data.requestBody
6097
8114
  * @returns ProviderSyncResponseDto Sync completed successfully
6098
8115
  * @throws ApiError
@@ -6101,15 +8118,18 @@ declare class ProviderSyncService {
6101
8118
  /**
6102
8119
  * Get supported providers
6103
8120
  * Returns a list of all providers supported by the sync endpoint.
8121
+ * @param data The data for the request.
8122
+ * @param data.region Region code for tenant context
6104
8123
  * @returns SupportedProvidersResponseDto List of supported providers
6105
8124
  * @throws ApiError
6106
8125
  */
6107
- static providerSyncControllerGetSupportedProviders(): CancelablePromise<ProviderSyncControllerGetSupportedProvidersResponse>;
8126
+ static providerSyncControllerGetSupportedProviders(data: ProviderSyncControllerGetSupportedProvidersData): CancelablePromise<ProviderSyncControllerGetSupportedProvidersResponse>;
6108
8127
  /**
6109
8128
  * Check if provider is supported
6110
8129
  * Returns whether a specific provider is supported.
6111
8130
  * @param data The data for the request.
6112
8131
  * @param data.providerName Provider name to check
8132
+ * @param data.region Region code for tenant context
6113
8133
  * @returns unknown Provider support status
6114
8134
  * @throws ApiError
6115
8135
  */
@@ -6128,6 +8148,12 @@ declare class HealthService {
6128
8148
  * @throws ApiError
6129
8149
  */
6130
8150
  static healthControllerCheckDatabase(): CancelablePromise<HealthControllerCheckDatabaseResponse>;
8151
+ /**
8152
+ * Check OpenBB schema status
8153
+ * @returns unknown OpenBB status
8154
+ * @throws ApiError
8155
+ */
8156
+ static healthControllerCheckOpenBb(): CancelablePromise<HealthControllerCheckOpenBbResponse>;
6131
8157
  /**
6132
8158
  * Check Redis connection health
6133
8159
  * @returns unknown Redis is healthy
@@ -6154,28 +8180,6 @@ declare class HealthService {
6154
8180
  * @throws ApiError
6155
8181
  */
6156
8182
  static healthControllerGetMetrics(): CancelablePromise<HealthControllerGetMetricsResponse>;
6157
- /**
6158
- * Check health of a specific data enhancer
6159
- * @param data The data for the request.
6160
- * @param data.name Data enhancer name
6161
- * @returns unknown Data enhancer is healthy
6162
- * @throws ApiError
6163
- */
6164
- static healthControllerGetHealthOfDataEnhancer(data: HealthControllerGetHealthOfDataEnhancerData): CancelablePromise<HealthControllerGetHealthOfDataEnhancerResponse>;
6165
- /**
6166
- * Check health of all data providers
6167
- * @returns unknown Data providers health status
6168
- * @throws ApiError
6169
- */
6170
- static healthControllerCheckDataProviders(): CancelablePromise<HealthControllerCheckDataProvidersResponse>;
6171
- /**
6172
- * Check health of a specific data provider
6173
- * @param data The data for the request.
6174
- * @param data.dataSource Data source identifier
6175
- * @returns unknown Data provider is healthy
6176
- * @throws ApiError
6177
- */
6178
- static healthControllerGetHealthOfDataProvider(data: HealthControllerGetHealthOfDataProviderData): CancelablePromise<HealthControllerGetHealthOfDataProviderResponse>;
6179
8183
  }
6180
8184
 
6181
8185
  type ApiRequestOptions = {
@@ -6218,4 +8222,4 @@ type OpenAPIConfig = {
6218
8222
  };
6219
8223
  declare const OpenAPI: OpenAPIConfig;
6220
8224
 
6221
- 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 AccountStandardsControllerGetRegionsResponse, type AccountStandardsControllerGetTemplatesData, type AccountStandardsControllerGetTemplatesResponse, type AccountsResponseDto, type AccountsSummaryDto, type AnonymousLoginDto, type ApiKeysControllerResponse, type ApiProblemResponseDto, type AssetClassAccountsResponseDto, type AssetClassGroupDto, type AssetClassSummaryDto, type AuthControllerAccessTokenLoginData, type AuthControllerAccessTokenLoginResponse, type BackfillSnapshotsBody, type BackfillSnapshotsResponse, type BalanceByCurrencyDto, type BalanceControllerGetBalanceData, type BalanceControllerGetBalanceResponse, type BalanceControllerGetMultiCurrencyBalanceResponse, type BalanceResponseDto, BeanAccountsService, BeanBalancesService, BeanCommoditiesService, BeanTransactionsService, type CacheControllerFlushCacheResponse, type CashFlowByCurrencyDto, type CashFlowResponseDto, type CloseAccountDto, type CommodityController1Data, type CommodityController1Response, type CommodityController2Data, type CommodityController2Response, type CommodityController3Data, type CommodityController3Response, type CommodityController4Data, type CommodityController4Response, type CommodityControllerData, type CommodityControllerFindAllData, type CommodityControllerFindAllResponse, type CommodityControllerFindOneData, type CommodityControllerFindOneResponse, type CommodityControllerResponse, type CommodityListResponseDto, type CommodityResponseDto, type ConvertedCashFlowDto, type ConvertedNetWorthDto, type CreateAccountDto, type CreatePostingDto, type CreateTransactionDto, type CurrencyBalanceDto, type DashboardControllerGetAccountsData, type DashboardControllerGetAccountsResponse, type DashboardControllerGetCashFlowData, type DashboardControllerGetCashFlowResponse, type DashboardControllerGetNetWorthData, type DashboardControllerGetNetWorthResponse, type DecisionOptionDto, type DeleteOwnUserDto, type ExchangeRateControllerGetExchangeRateData, type ExchangeRateControllerGetExchangeRateResponse, type ExchangeRateWarningDto, type ExpectedTransactionController1Data, type ExpectedTransactionController1Response, type ExpectedTransactionController2Data, type ExpectedTransactionController2Response, type ExpectedTransactionController3Data, type ExpectedTransactionController3Response, type ExpectedTransactionController4Data, type ExpectedTransactionController4Response, type ExpectedTransactionControllerData, type ExpectedTransactionControllerFindAllData, type ExpectedTransactionControllerFindAllResponse, type ExpectedTransactionControllerFindOneData, type ExpectedTransactionControllerFindOneResponse, type ExpectedTransactionControllerFindOverdueData, type ExpectedTransactionControllerFindOverdueResponse, type ExpectedTransactionControllerResponse, type ExpectedTransactionListResponseDto, type ExpectedTransactionResponseDto, type ExpectedTransactionRuleDto, type ExportRulesResponseDto, type FileImportControllerIdentifyFileData, type FileImportControllerIdentifyFileResponse, type FileImportControllerImportFileData, type FileImportControllerImportFileResponse, type FileImportDto, type ForecastControllerGetForecastData, type ForecastControllerGetForecastResponse, type ForecastItemDto, type ForecastResponseDto, type GenerateSnapshotBody, type GenerateSnapshotResponse, type HealthControllerCheckDataProvidersResponse, type HealthControllerCheckDatabaseResponse, type HealthControllerCheckRedisResponse, type HealthControllerGetCircuitBreakersHealthResponse, type HealthControllerGetHealthOfDataEnhancerData, type HealthControllerGetHealthOfDataEnhancerResponse, type HealthControllerGetHealthOfDataProviderData, type HealthControllerGetHealthOfDataProviderResponse, type HealthControllerGetHealthResponse, type HealthControllerGetMetricsResponse, type HealthControllerResetCircuitBreakerData, type HealthControllerResetCircuitBreakerResponse, HealthService, type IdentifyResultDto, type ImportErrorDto, type ImportResultDto, type ImporterConfigController1Data, type ImporterConfigController1Response, type ImporterConfigControllerData, type ImporterConfigControllerGetConfigData, type ImporterConfigControllerGetConfigResponse, type ImporterConfigControllerResponse, type ImporterConfigDataDto, type ImporterConfigDto, type InfoControllerGetInfoResponse, type LogoControllerGetLogoByDataSourceAndSymbolData, type LogoControllerGetLogoByDataSourceAndSymbolResponse, type LogoControllerGetLogoByUrlData, type LogoControllerGetLogoByUrlResponse, type MapperDefaultsDto, type MarketDataControllerGetMarketDataBySymbolData, type MarketDataControllerGetMarketDataBySymbolResponse, type MarketDataControllerResponse, 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 PayeeController1Response, type PayeeController2Response, type PayeeControllerAutocompleteData, type PayeeControllerAutocompleteResponse, type PayeeControllerFindAllData, type PayeeControllerFindAllResponse, type PayeeControllerFindOneData, type PayeeControllerFindOneResponse, type PayeeControllerGetTopPayeesData, type PayeeControllerGetTopPayeesResponse, type PayeeControllerResponse, type PayeeListResponseDto, type PayeeProfileAdminController1Response, type PayeeProfileAdminController2Response, type PayeeProfileAdminController3Response, type PayeeProfileAdminController4Response, type PayeeProfileAdminControllerFindAllData, type PayeeProfileAdminControllerFindAllResponse, type PayeeProfileAdminControllerFindOneData, type PayeeProfileAdminControllerFindOneResponse, type PayeeProfileAdminControllerResponse, type PayeeProfileListResponseDto, type PayeeProfileResponseDto, type PayeeResponseDto, type PayeeStatsResponseDto, type PlatformController1Response, type PlatformController2Response, type PlatformControllerFindAllResponse, type PlatformControllerGetPlatformListResponse, type PlatformControllerResponse, type PlatformGroupDto, type PortfolioTrendsResponseDto, type PostingDetailDto, type PostingResponseDto, type ProcessNlpDto, type PropertyController1Response, type PropertyControllerGetAllResponse, type PropertyControllerGetByKeyData, type PropertyControllerGetByKeyResponse, type PropertyControllerResponse, type ProviderSyncConfigDto, type ProviderSyncControllerGetSupportedProvidersResponse, type ProviderSyncControllerIsProviderSupportedData, type ProviderSyncControllerIsProviderSupportedResponse, type ProviderSyncControllerSyncData, type ProviderSyncControllerSyncResponse, type ProviderSyncDto, type ProviderSyncResponseDto, ProviderSyncService, type RecurringMatchInfoDto, type RecurringRuleController1Data, type RecurringRuleController1Response, type RecurringRuleController2Data, type RecurringRuleController2Response, type RecurringRuleController3Data, type RecurringRuleController3Response, type RecurringRuleControllerData, type RecurringRuleControllerFindAllData, type RecurringRuleControllerFindAllResponse, type RecurringRuleControllerFindOneData, type RecurringRuleControllerFindOneResponse, type RecurringRuleControllerGetWithStatsData, type RecurringRuleControllerGetWithStatsResponse, type RecurringRuleControllerResponse, 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 ReviewController1Data, type ReviewController1Response, type ReviewController2Data, type ReviewController2Response, type ReviewControllerData, type ReviewControllerFindAllData, type ReviewControllerFindAllResponse, type ReviewControllerFindOneData, type ReviewControllerFindOneResponse, type ReviewControllerGetStatsData, type ReviewControllerGetStatsResponse, type ReviewControllerResponse, type ReviewDetailDto, type ReviewItemPreviewDto, type ReviewListResponseDto, type ReviewStatsDto, type ReviewSummaryDto, type RuleStatisticsResponseDto, type SignupDto, type SupportedProvidersResponseDto, type SymbolControllerGatherSymbolForDateData, type SymbolControllerGatherSymbolForDateResponse, type SymbolControllerGetSymbolDataData, type SymbolControllerGetSymbolDataResponse, type SymbolControllerLookupSymbolData, type SymbolControllerLookupSymbolResponse, type SymbolControllerResponse, type TelemetryControllerReportTelemetryData, type TelemetryControllerReportTelemetryResponse, type TestRuleDto, type TestRuleResponseDto, type TimeSeriesPointDto, type TransactionController1Data, type TransactionController1Response, type TransactionControllerCreateData, type TransactionControllerCreateResponse, type TransactionControllerData, type TransactionControllerGetDetailData, type TransactionControllerGetDetailResponse, type TransactionControllerListData, type TransactionControllerListResponse, type TransactionControllerResponse, type TransactionControllerUpdateData, type TransactionControllerUpdateResponse, type TransactionDetailDto, type TransactionListResponseDto, type TransactionResponseDto, type TransactionRuleController1Data, type TransactionRuleController1Response, type TransactionRuleController2Data, type TransactionRuleController2Response, type TransactionRuleController3Data, type TransactionRuleController3Response, type TransactionRuleControllerData, type TransactionRuleControllerExportData, type TransactionRuleControllerExportResponse, type TransactionRuleControllerGetDetailData, type TransactionRuleControllerGetDetailResponse, type TransactionRuleControllerGetStatisticsData, type TransactionRuleControllerGetStatisticsResponse, type TransactionRuleControllerListData, type TransactionRuleControllerListResponse, type TransactionRuleControllerResponse, type TransactionRuleControllerTestData, type TransactionRuleControllerTestResponse, type TransactionRuleControllerValidateData, type TransactionRuleControllerValidateResponse, type TransactionRuleListResponseDto, type TransactionRuleResponseDto, type TransactionSummaryDto, type TrendSummaryDto, type UpdateAccountDto, type UpdateTransactionDto, 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 dataSource, type equitySubType, type flag, type flag2, 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 viewMode };
8225
+ 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 AmountDto, 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 CorrectTransactionDto, type CostSpecDto, type CreateAccountDto, type CreateBeanPriceDto, type CreateCommodityDto, 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 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 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, 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 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 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 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 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 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 method, type mode, type paymentSource, type period, type source, type source2, type source3, type status, type status2, type status3, type status4, type suggestedFrequency, type type, type type2, type type3, type type4, type value, type viewMode };