@firela/api-types 0.0.0-canary.b8c7b056 → 0.0.0-canary.bd196208

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
@@ -50,6 +50,10 @@ type CreateAccountDto = {
50
50
  * Icon identifier (overrides template)
51
51
  */
52
52
  icon?: string;
53
+ /**
54
+ * User-set display name override (omit/null = keep the derived name)
55
+ */
56
+ displayName?: string | null;
53
57
  /**
54
58
  * Open directive metadata (NOT an opening-balance amount — use the opening-balance endpoint)
55
59
  */
@@ -111,7 +115,7 @@ type AccountResponseDto = {
111
115
  */
112
116
  isCustom: boolean;
113
117
  /**
114
- * Localized display name (ADR-0114, read-time projection)
118
+ * Display name with precedence: user-set name (#762) > ADR-0114 localized name > path leaf (read-time projection)
115
119
  */
116
120
  displayName?: string;
117
121
  /**
@@ -127,9 +131,7 @@ type AccountResponseDto = {
127
131
  /**
128
132
  * Platform ID (null if unbound)
129
133
  */
130
- platformId?: {
131
- [key: string]: unknown;
132
- };
134
+ platformId?: string;
133
135
  /**
134
136
  * Platform details (populated if platformId is set)
135
137
  */
@@ -180,6 +182,10 @@ type UpdateAccountDto = {
180
182
  * Icon identifier
181
183
  */
182
184
  icon?: string;
185
+ /**
186
+ * User-set display name override (null = clear the override and fall back to the derived name, omit = unchanged)
187
+ */
188
+ displayName?: string | null;
183
189
  /**
184
190
  * Open directive metadata (merged with existing; NOT an opening-balance amount)
185
191
  */
@@ -239,15 +245,27 @@ type AccountStandardResponseDto = {
239
245
  */
240
246
  type: 'Assets' | 'Liabilities' | 'Income' | 'Expenses' | 'Equity';
241
247
  /**
242
- * Short localized display name
248
+ * Short display name. Universal rows project to the request locale (Accept-Language); regional rows keep the authored native name — mixed-language by design (ADR-0131 class P vs class A).
243
249
  */
244
250
  name?: string;
245
251
  /**
246
- * Account description (stable semantics only)
252
+ * Authored market-language alternative names delivered verbatim (not localized copy, not xlf-managed, not locale-projected). Flat string[] per ADR-0129 D1; ADR-0131 class A.
253
+ */
254
+ aliases?: Array<string>;
255
+ /**
256
+ * Locale-projected search synonyms (e.g. the zh bank-card / debit-card everyday terms for the checking account). Pure-locale projection — absent when the locale has no seeded synonyms; English fallback rides the authored aliases field. Search-only vocabulary, not the NLP routing corpus (#698, ADR-0131 fourth-class adjudication).
257
+ */
258
+ searchTerms?: Array<string>;
259
+ /**
260
+ * Product denomination as a 3-letter ISO 4217 code, authored market data delivered verbatim (not localized, not xlf-managed). ADR-0131 class A. Absent = single-currency not asserted — consumers fall back to their own region currency (#714).
261
+ */
262
+ currency?: string;
263
+ /**
264
+ * Account description (stable semantics only). Mixed-language contract: universal rows project to the request locale via the accountDesc xlf axis with an en fallback (ADR-0131 class P, ADR-0132; unseeded locales falling back to English are expected); regional rows deliver the authored market language (ADR-0131 class A, verbatim, never xlf-managed).
247
265
  */
248
266
  description: string;
249
267
  /**
250
- * Account tags for categorization
268
+ * Account tags for categorization — structured metadata delivered verbatim (not localized, not xlf-managed). ADR-0131 class A.
251
269
  */
252
270
  tags: Array<string>;
253
271
  /**
@@ -301,10 +319,17 @@ type TemplateMetadataResponseDto = {
301
319
  type RegionConfigDto = {
302
320
  currency: string;
303
321
  dateFormat: string;
322
+ /**
323
+ * Region-qualified BCP-47 tag whose region subtag equals the region's own ISO 3166-1 code (e.g., ja-JP, zh-CN, zh-HK)
324
+ */
304
325
  locale: string;
305
326
  };
306
327
  type RegionInfoDto = {
307
328
  code: string;
329
+ /**
330
+ * Whether the region is open (has a ready regional account template). Not-yet-open regions still return identity metadata and degrade to the universal-only catalog.
331
+ */
332
+ open: boolean;
308
333
  displayName: string;
309
334
  parent?: string;
310
335
  chain: Array<string>;
@@ -457,7 +482,7 @@ type PostingResponseDto = {
457
482
  */
458
483
  account: string;
459
484
  /**
460
- * Amount as decimal string. Typed optional but always present in responses: interpolation fills any MISSING posting before it is persisted or returned.
485
+ * Amount as decimal string. Typed optional but always present in responses: interpolation fills any MISSING posting before it is persisted or returned. Carries the raw Beancount sign (credit-normal accounts such as Income post negative — the accounting truth, ADR-0126); renderers must not infer economic semantics from this sign.
461
486
  */
462
487
  units?: string;
463
488
  /**
@@ -669,7 +694,7 @@ type PostingDetailDto = {
669
694
  */
670
695
  account: string;
671
696
  /**
672
- * Amount as decimal string. Typed optional but always present in responses: interpolation fills any MISSING posting before it is persisted or returned.
697
+ * Amount as decimal string. Typed optional but always present in responses: interpolation fills any MISSING posting before it is persisted or returned. Carries the raw Beancount sign (credit-normal accounts such as Income post negative — the accounting truth, ADR-0126); renderers must not infer economic semantics from this sign.
673
698
  */
674
699
  units?: string;
675
700
  /**
@@ -799,6 +824,94 @@ type flag2 = 'CLEARED' | 'PENDING' | 'PADDING' | 'SUMMARIZE' | 'TRANSFER' | 'CON
799
824
  * Transaction status
800
825
  */
801
826
  type status2 = 'ACTIVE' | 'VOIDED' | 'SUPERSEDED';
827
+ type TransactionListItemDto = {
828
+ /**
829
+ * Transaction ID
830
+ */
831
+ id: string;
832
+ /**
833
+ * Transaction date
834
+ */
835
+ date: string;
836
+ /**
837
+ * Transaction flag
838
+ */
839
+ flag?: 'CLEARED' | 'PENDING' | 'PADDING' | 'SUMMARIZE' | 'TRANSFER' | 'CONVERSIONS';
840
+ /**
841
+ * Custom flag (if not using standard flags)
842
+ */
843
+ customFlag?: string;
844
+ /**
845
+ * Payee name
846
+ */
847
+ payee?: string;
848
+ /**
849
+ * Transaction narration
850
+ */
851
+ narration: string;
852
+ /**
853
+ * Transaction tags
854
+ */
855
+ tags: Array<string>;
856
+ /**
857
+ * Transaction links
858
+ */
859
+ links: Array<string>;
860
+ /**
861
+ * Transaction metadata
862
+ */
863
+ meta?: {
864
+ [key: string]: unknown;
865
+ };
866
+ /**
867
+ * Transaction status
868
+ */
869
+ status: 'ACTIVE' | 'VOIDED' | 'SUPERSEDED';
870
+ /**
871
+ * Source type (free-form string from transaction metadata, e.g. import, api)
872
+ */
873
+ sourceType?: string;
874
+ /**
875
+ * Source platform (e.g., alipay, wechat)
876
+ */
877
+ sourcePlatform?: string;
878
+ /**
879
+ * Transaction postings
880
+ */
881
+ postings: Array<PostingDetailDto>;
882
+ /**
883
+ * Created at timestamp
884
+ */
885
+ createdAt: string;
886
+ /**
887
+ * Voided at timestamp (if voided)
888
+ */
889
+ voidedAt?: string;
890
+ /**
891
+ * User ID who voided this transaction
892
+ */
893
+ voidedBy?: string;
894
+ /**
895
+ * Correction reason (if voided or superseded)
896
+ */
897
+ correctionReason?: string;
898
+ /**
899
+ * ID of the transaction that supersedes this one (set when status=SUPERSEDED)
900
+ */
901
+ supersededBy?: string;
902
+ /**
903
+ * ID of the transaction this one corrected/replaced (back-link on the replacement)
904
+ */
905
+ originalTxn?: string;
906
+ /**
907
+ * Row amount under the request viewpoint (ADR-0126). Category viewpoint (category + flow): per-leg sign-normalized sum over the category account set (Income-root legs negated, Expenses-root identity) — positive under normal booking but NOT clamped (explicit negative expense legs and net-flip refund months stay negative). No viewpoint (plain list / search, no accountId): wallet money-flow net = raw-sign sum over cost-less Assets/Liabilities legs (income positive, expenses negative, transfers net ~0); color cue is the wallet sign (net < 0 = wealth-decreasing). Status-orthogonal: audit views match too (ADR-0128 amount-as-matching-key). Omitted under the account viewpoint (incl. dual) and for rows with no wallet leg.
908
+ */
909
+ viewpointAmount?: string;
910
+ /**
911
+ * Currency of viewpointAmount. A row spanning multiple currencies takes the largest-magnitude currency group (known simplification, ADR-0126).
912
+ */
913
+ viewpointCurrency?: string;
914
+ };
802
915
  type BalanceByCurrencyDto = {
803
916
  /**
804
917
  * ISO 4217 currency code
@@ -825,7 +938,7 @@ type ExchangeRateWarningDto = {
825
938
  };
826
939
  type TransactionListSummaryDto = {
827
940
  /**
828
- * Partial converted total in base currency (rated currencies only, raw Beancount sign). When warnings is non-empty this excludes currencies missing an FX rate; may be "0.00" if ALL non-base currencies lack a rate. Converted at the dateTo (or current) available rate.
941
+ * Partial converted total in base currency (rated currencies only). Sign by viewpoint (ADR-0126): account viewpoint keeps the raw Beancount sign (income negative); category viewpoint is per-leg sign-normalized (Income legs negated, Expenses legs identity — positive under normal booking, not clamped). When warnings is non-empty this excludes currencies missing an FX rate; may be "0.00" if ALL non-base currencies lack a rate. Converted at the dateTo (or current) available rate.
829
942
  */
830
943
  totalAmount: string;
831
944
  /**
@@ -841,11 +954,29 @@ type TransactionListSummaryDto = {
841
954
  */
842
955
  warnings?: Array<ExchangeRateWarningDto>;
843
956
  };
957
+ type TransactionListViewpointDto = {
958
+ /**
959
+ * Viewpoint type (only category drill-down carries a viewpoint today)
960
+ */
961
+ type: 'category';
962
+ /**
963
+ * Flow root the category account set is restricted to
964
+ */
965
+ flow: 'income' | 'expense';
966
+ };
967
+ /**
968
+ * Viewpoint type (only category drill-down carries a viewpoint today)
969
+ */
970
+ type type2 = 'category';
971
+ /**
972
+ * Flow root the category account set is restricted to
973
+ */
974
+ type flow = 'income' | 'expense';
844
975
  type TransactionListResponseDto = {
845
976
  /**
846
977
  * List of transactions
847
978
  */
848
- data: Array<TransactionDetailDto>;
979
+ data: Array<TransactionListItemDto>;
849
980
  /**
850
981
  * Total count of matching transactions
851
982
  */
@@ -862,6 +993,10 @@ type TransactionListResponseDto = {
862
993
  * Amount summary for the full filtered set (#514). Present only when the request has a single account OR category viewpoint; omitted for search-only / plain-list / dual-perspective requests.
863
994
  */
864
995
  summary?: TransactionListSummaryDto;
996
+ /**
997
+ * Viewpoint metadata (ADR-0126). Present only for a single category filter (category + flow, no accountId); dual-perspective requests are viewpoint-less (raw signs, no viewpointAmount).
998
+ */
999
+ viewpoint?: TransactionListViewpointDto;
865
1000
  };
866
1001
  type TagSuggestionDto = {
867
1002
  /**
@@ -1054,7 +1189,7 @@ type ReviewSummaryDto = {
1054
1189
  /**
1055
1190
  * Review type
1056
1191
  */
1057
- type type2 = 'DUPLICATE' | 'RULE_MATCH' | 'PAYEE_MATCH' | 'ACCOUNT_VALIDATION' | 'PIPELINE_ERROR';
1192
+ type type3 = 'DUPLICATE' | 'RULE_MATCH' | 'PAYEE_MATCH' | 'ACCOUNT_VALIDATION' | 'PIPELINE_ERROR';
1058
1193
  /**
1059
1194
  * Review status
1060
1195
  */
@@ -1418,7 +1553,7 @@ type UpdatePayeeDto = {
1418
1553
  */
1419
1554
  customTags?: Array<string>;
1420
1555
  /**
1421
- * Metadata for extended information (location, notes, contact info, etc.). Will merge with existing metadata.
1556
+ * Metadata for extended information (location, notes, contact info, etc.)
1422
1557
  */
1423
1558
  meta?: {
1424
1559
  [key: string]: unknown;
@@ -1708,451 +1843,423 @@ type UpdateCommodityDto = {
1708
1843
  [key: string]: unknown;
1709
1844
  };
1710
1845
  };
1711
- type CreateBeanPriceDto = {
1846
+ type CurrencyBalanceDto = {
1712
1847
  /**
1713
- * Currency being priced (e.g., USD, AAPL, BTC)
1848
+ * ISO 4217 currency code
1714
1849
  */
1715
1850
  currency: string;
1716
1851
  /**
1717
- * Quote currency (pricing currency, e.g., CNY, EUR)
1852
+ * Balance amount
1718
1853
  */
1719
- quoteCurrency: string;
1854
+ balance: string;
1855
+ };
1856
+ type TimeSeriesPointDto = {
1720
1857
  /**
1721
- * Price amount (MUST be >= 0 per Beancount spec, supports up to 15 decimal places). Zero allowed for conversion entries, negative strictly prohibited.
1858
+ * Date in YYYY-MM-DD format
1722
1859
  */
1723
- amount: number;
1860
+ date: string;
1724
1861
  /**
1725
- * Price date (ISO 8601 format)
1862
+ * Value at this date (in base currency)
1726
1863
  */
1727
- date: string;
1864
+ value: string;
1728
1865
  /**
1729
- * Metadata (validated by Zod schema, max field lengths enforced)
1866
+ * Change from previous point
1730
1867
  */
1731
- metadata?: {
1732
- [key: string]: unknown;
1733
- };
1734
- };
1735
- type PriceResponseDto = {
1868
+ change?: string;
1736
1869
  /**
1737
- * Unique identifier
1870
+ * Total assets at this date (in base currency)
1738
1871
  */
1739
- id: string;
1872
+ assets?: string;
1740
1873
  /**
1741
- * User ID (owner of the price)
1874
+ * Total liabilities at this date (in base currency)
1742
1875
  */
1743
- userId: string;
1876
+ liabilities?: string;
1744
1877
  /**
1745
- * Currency being priced (e.g., USD, AAPL, BTC)
1878
+ * Multi-currency breakdown for this point
1746
1879
  */
1747
- currency: string;
1880
+ byCurrency?: Array<CurrencyBalanceDto>;
1881
+ };
1882
+ type TrendSummaryDto = {
1748
1883
  /**
1749
- * Quote currency (pricing currency, e.g., USD, CNY)
1884
+ * Value at start of period
1750
1885
  */
1751
- quoteCurrency: string;
1886
+ startValue: string;
1752
1887
  /**
1753
- * Price amount (corresponds to Beancount Amount.number). Supports up to 15 decimal places.
1888
+ * Value at end of period
1754
1889
  */
1755
- amount: number;
1890
+ endValue: string;
1756
1891
  /**
1757
- * Price date (ISO 8601 format). Represents the date this price was valid.
1892
+ * Total change over period
1758
1893
  */
1759
- date: string;
1894
+ totalChange: string;
1760
1895
  /**
1761
- * Metadata (corresponds to Beancount meta field). Contains source, confidence, note, etc.
1896
+ * Total change percentage
1762
1897
  */
1763
- meta: {
1764
- [key: string]: unknown;
1765
- };
1898
+ totalChangePercentage: string;
1899
+ };
1900
+ type MultiCurrencyPointDto = {
1766
1901
  /**
1767
- * Creation timestamp
1902
+ * Date in YYYY-MM-DD format
1768
1903
  */
1769
- createdAt: string;
1904
+ date: string;
1770
1905
  /**
1771
- * Last update timestamp
1906
+ * Balances by currency
1772
1907
  */
1773
- updatedAt: string;
1908
+ byCurrency: Array<CurrencyBalanceDto>;
1774
1909
  };
1775
- type PriceListResponseDto = {
1910
+ type PortfolioTrendsResponseDto = {
1776
1911
  /**
1777
- * List of prices
1912
+ * Time series data points
1778
1913
  */
1779
- items: Array<PriceResponseDto>;
1914
+ series: Array<TimeSeriesPointDto>;
1780
1915
  /**
1781
- * Total number of prices
1916
+ * Period summary
1782
1917
  */
1783
- total: number;
1784
- };
1785
- type UpdateBeanPriceDto = {
1918
+ summary: TrendSummaryDto;
1786
1919
  /**
1787
- * Currency being priced
1920
+ * Period requested
1788
1921
  */
1789
- currency?: string;
1922
+ period: string;
1790
1923
  /**
1791
- * Quote currency (pricing currency)
1924
+ * Data granularity
1792
1925
  */
1793
- quoteCurrency?: string;
1926
+ granularity: string;
1794
1927
  /**
1795
- * Price amount (MUST be >= 0 per Beancount spec)
1928
+ * Base currency for converted values
1796
1929
  */
1797
- amount?: number;
1930
+ currency: string;
1798
1931
  /**
1799
- * Price date (ISO 8601 format)
1932
+ * Multi-currency time series (each point has currency breakdown)
1800
1933
  */
1801
- date?: string;
1934
+ byCurrency?: Array<MultiCurrencyPointDto>;
1802
1935
  /**
1803
- * Metadata
1936
+ * Exchange rate warnings
1804
1937
  */
1805
- metadata?: {
1806
- [key: string]: unknown;
1807
- };
1938
+ warnings?: Array<ExchangeRateWarningDto>;
1808
1939
  };
1809
- type CreateRecurringRuleDto = {
1940
+ type CashFlowPointDto = {
1810
1941
  /**
1811
- * Rule name (unique per user)
1942
+ * Month key (YYYY-MM)
1812
1943
  */
1813
- name: string;
1944
+ month: string;
1814
1945
  /**
1815
- * Icon emoji
1946
+ * Income in base currency (absolute, converted)
1816
1947
  */
1817
- icon?: string;
1948
+ income: string;
1818
1949
  /**
1819
- * Recurring frequency
1950
+ * Expense in base currency (absolute, converted)
1820
1951
  */
1821
- frequency: 'WEEKLY' | 'BIWEEKLY' | 'MONTHLY' | 'BIMONTHLY' | 'QUARTERLY' | 'YEARLY' | 'CUSTOM';
1952
+ expense: string;
1822
1953
  /**
1823
- * Expected amount (positive number)
1954
+ * netSavings = income − expense (savings positive)
1824
1955
  */
1825
- expectedAmount: number;
1956
+ netSavings: string;
1957
+ };
1958
+ type CashFlowTrendSummaryDto = {
1826
1959
  /**
1827
- * Expected day of month (1-31)
1960
+ * Total income across the period
1828
1961
  */
1829
- expectedDay?: number;
1962
+ totalIncome: string;
1830
1963
  /**
1831
- * Custom interval in days (required for CUSTOM frequency)
1964
+ * Total expense across the period
1832
1965
  */
1833
- customIntervalDays?: number;
1966
+ totalExpense: string;
1834
1967
  /**
1835
- * Currency code
1968
+ * income − expense across the period
1836
1969
  */
1837
- currency: string;
1970
+ totalNetSavings: string;
1838
1971
  /**
1839
- * Payee matching pattern (supports wildcards)
1972
+ * totalNetSavings divided by the window length (N months, incl. zero-filled)
1840
1973
  */
1841
- matchPayeePattern?: string;
1974
+ averageMonthlyNetSavings: string;
1975
+ };
1976
+ type CashFlowTrendsResponseDto = {
1842
1977
  /**
1843
- * Amount tolerance percentage (0-1)
1978
+ * Monthly cash-flow series (fixed N-month window, zero-filled)
1844
1979
  */
1845
- matchAmountTolerance: number;
1980
+ series: Array<CashFlowPointDto>;
1846
1981
  /**
1847
- * Default expense account for auto-create
1982
+ * Period totals
1848
1983
  */
1849
- defaultExpenseAccount?: string;
1984
+ summary: CashFlowTrendSummaryDto;
1850
1985
  /**
1851
- * Default payment account for auto-create
1986
+ * Period requested
1852
1987
  */
1853
- defaultPaymentAccount?: string;
1988
+ period: string;
1854
1989
  /**
1855
- * Default payee for auto-create
1990
+ * Data granularity (v1 returns month buckets)
1856
1991
  */
1857
- defaultPayee?: string;
1992
+ granularity: string;
1858
1993
  /**
1859
- * Auto-create transaction when expected date arrives
1994
+ * Base currency for converted values
1860
1995
  */
1861
- autoCreate: boolean;
1996
+ currency: string;
1862
1997
  /**
1863
- * Rule start date (ISO format)
1998
+ * Exchange rate warnings (e.g. missing rate for a currency)
1864
1999
  */
1865
- startDate?: string;
2000
+ warnings?: Array<ExchangeRateWarningDto>;
2001
+ };
2002
+ type GenerateSnapshotBody = unknown;
2003
+ type GenerateSnapshotResponse = unknown;
2004
+ type BackfillSnapshotsBody = unknown;
2005
+ type BackfillSnapshotsResponse = unknown;
2006
+ type CreateBeanPriceDto = {
1866
2007
  /**
1867
- * Rule end date (ISO format)
2008
+ * Currency being priced (e.g., USD, AAPL, BTC)
1868
2009
  */
1869
- endDate?: string;
1870
- };
1871
- /**
1872
- * Recurring frequency
1873
- */
1874
- type frequency = 'WEEKLY' | 'BIWEEKLY' | 'MONTHLY' | 'BIMONTHLY' | 'QUARTERLY' | 'YEARLY' | 'CUSTOM';
1875
- type RecurringRuleResponseDto = {
2010
+ currency: string;
1876
2011
  /**
1877
- * Rule ID
2012
+ * Quote currency (pricing currency, e.g., CNY, EUR)
1878
2013
  */
1879
- id: string;
2014
+ quoteCurrency: string;
1880
2015
  /**
1881
- * User ID
2016
+ * Price amount (MUST be >= 0 per Beancount spec, supports up to 15 decimal places). Zero allowed for conversion entries, negative strictly prohibited.
1882
2017
  */
1883
- userId: string;
2018
+ amount: number;
1884
2019
  /**
1885
- * Rule name
2020
+ * Price date (ISO 8601 format)
1886
2021
  */
1887
- name: string;
2022
+ date: string;
1888
2023
  /**
1889
- * Icon emoji
2024
+ * Metadata (validated by Zod schema, max field lengths enforced)
1890
2025
  */
1891
- icon?: {
2026
+ metadata?: {
1892
2027
  [key: string]: unknown;
1893
2028
  };
2029
+ };
2030
+ type PriceResponseDto = {
1894
2031
  /**
1895
- * Recurring frequency
2032
+ * Unique identifier
1896
2033
  */
1897
- frequency: string;
2034
+ id: string;
1898
2035
  /**
1899
- * Expected amount
2036
+ * User ID (owner of the price)
1900
2037
  */
1901
- expectedAmount: number;
2038
+ userId: string;
1902
2039
  /**
1903
- * Expected day of month
2040
+ * Currency being priced (e.g., USD, AAPL, BTC)
1904
2041
  */
1905
- expectedDay?: {
1906
- [key: string]: unknown;
1907
- };
2042
+ currency: string;
1908
2043
  /**
1909
- * Custom interval in days
2044
+ * Quote currency (pricing currency, e.g., USD, CNY)
1910
2045
  */
1911
- customIntervalDays?: {
1912
- [key: string]: unknown;
1913
- };
2046
+ quoteCurrency: string;
1914
2047
  /**
1915
- * Currency code
2048
+ * Price amount (corresponds to Beancount Amount.number). Supports up to 15 decimal places.
1916
2049
  */
1917
- currency: string;
2050
+ amount: number;
1918
2051
  /**
1919
- * Payee matching pattern
2052
+ * Price date (ISO 8601 format). Represents the date this price was valid.
2053
+ */
2054
+ date: string;
2055
+ /**
2056
+ * Metadata (corresponds to Beancount meta field). Contains source, confidence, note, etc.
1920
2057
  */
1921
- matchPayeePattern?: {
2058
+ meta: {
1922
2059
  [key: string]: unknown;
1923
2060
  };
1924
2061
  /**
1925
- * Amount tolerance percentage
2062
+ * Creation timestamp
1926
2063
  */
1927
- matchAmountTolerance: number;
2064
+ createdAt: string;
1928
2065
  /**
1929
- * Default expense account
2066
+ * Last update timestamp
1930
2067
  */
1931
- defaultExpenseAccount?: {
1932
- [key: string]: unknown;
1933
- };
2068
+ updatedAt: string;
2069
+ };
2070
+ type PriceListResponseDto = {
1934
2071
  /**
1935
- * Default payment account
2072
+ * List of prices
1936
2073
  */
1937
- defaultPaymentAccount?: {
1938
- [key: string]: unknown;
1939
- };
2074
+ items: Array<PriceResponseDto>;
1940
2075
  /**
1941
- * Default payee
2076
+ * Total number of prices
1942
2077
  */
1943
- defaultPayee?: {
1944
- [key: string]: unknown;
1945
- };
2078
+ total: number;
2079
+ };
2080
+ type UpdateBeanPriceDto = {
1946
2081
  /**
1947
- * Whether rule is active
2082
+ * Currency being priced
1948
2083
  */
1949
- isActive: boolean;
2084
+ currency?: string;
1950
2085
  /**
1951
- * Rule start date (YYYY-MM-DD)
2086
+ * Quote currency (pricing currency)
1952
2087
  */
1953
- startDate: string;
2088
+ quoteCurrency?: string;
1954
2089
  /**
1955
- * Rule end date (YYYY-MM-DD)
2090
+ * Price amount (MUST be >= 0 per Beancount spec)
1956
2091
  */
1957
- endDate?: {
1958
- [key: string]: unknown;
1959
- };
2092
+ amount?: number;
1960
2093
  /**
1961
- * Auto-create transaction on expected date
2094
+ * Price date (ISO 8601 format)
1962
2095
  */
1963
- autoCreate: boolean;
2096
+ date?: string;
1964
2097
  /**
1965
- * Last matched occurrence date (YYYY-MM-DD)
2098
+ * Metadata
1966
2099
  */
1967
- lastOccurrence?: {
2100
+ metadata?: {
1968
2101
  [key: string]: unknown;
1969
2102
  };
2103
+ };
2104
+ type DeleteOwnUserDto = {
1970
2105
  /**
1971
- * Total matched transactions count
2106
+ * Access token for user verification
1972
2107
  */
1973
- totalCount: number;
2108
+ accessToken: string;
2109
+ };
2110
+ type UserSettingsResponseDto = {
1974
2111
  /**
1975
- * Created at timestamp
2112
+ * Stored base currency choice (ISO 4217) for net-worth/report aggregation. null = user never chose; aggregates fall back to the region default at display time (#713).
1976
2113
  */
1977
- createdAt: string;
2114
+ baseCurrency: string | null;
2115
+ };
2116
+ type UserResponseDto = {
1978
2117
  /**
1979
- * Updated at timestamp
2118
+ * User ID
1980
2119
  */
1981
- updatedAt: string;
1982
- };
1983
- type CreateRuleFromTransactionDto = {
2120
+ id: string;
1984
2121
  /**
1985
- * Recurring frequency
2122
+ * Assigned user role
1986
2123
  */
1987
- frequency: 'WEEKLY' | 'BIWEEKLY' | 'MONTHLY' | 'BIMONTHLY' | 'QUARTERLY' | 'YEARLY' | 'CUSTOM';
2124
+ role: string;
1988
2125
  /**
1989
- * Optional name override (default: transaction payee)
2126
+ * Permission strings
1990
2127
  */
1991
- name?: string;
2128
+ permissions: Array<string>;
1992
2129
  /**
1993
- * Optional icon emoji
2130
+ * User settings
1994
2131
  */
1995
- icon?: string;
2132
+ settings: UserSettingsResponseDto;
1996
2133
  };
1997
- type RecurringRuleWithStatsResponseDto = {
2134
+ type SignupDto = {
1998
2135
  /**
1999
- * Rule ID
2136
+ * Cloudflare Turnstile verification token (optional when Turnstile disabled)
2000
2137
  */
2001
- id: string;
2138
+ turnstileToken?: string;
2139
+ };
2140
+ type SignupResponseDto = {
2002
2141
  /**
2003
- * User ID
2142
+ * JWT auth token
2004
2143
  */
2005
- userId: string;
2144
+ authToken: string;
2006
2145
  /**
2007
- * Rule name
2146
+ * Auto-generated access token
2008
2147
  */
2009
- name: string;
2148
+ accessToken: string;
2010
2149
  /**
2011
- * Icon emoji
2150
+ * Assigned user role
2012
2151
  */
2013
- icon?: {
2014
- [key: string]: unknown;
2015
- };
2152
+ role: 'USER' | 'ADMIN' | 'DEMO' | 'INACTIVE' | 'PAID' | 'OPS';
2153
+ };
2154
+ /**
2155
+ * Assigned user role
2156
+ */
2157
+ type role = 'USER' | 'ADMIN' | 'DEMO' | 'INACTIVE' | 'PAID' | 'OPS';
2158
+ type UpdateUserSettingDto = {
2016
2159
  /**
2017
- * Recurring frequency
2160
+ * Security ID
2018
2161
  */
2019
- frequency: string;
2162
+ secId?: number;
2020
2163
  /**
2021
- * Expected amount
2164
+ * Annual interest rate
2022
2165
  */
2023
- expectedAmount: number;
2166
+ annualInterestRate?: number;
2024
2167
  /**
2025
- * Expected day of month
2168
+ * Currency code
2026
2169
  */
2027
- expectedDay?: {
2028
- [key: string]: unknown;
2029
- };
2170
+ currency?: string;
2030
2171
  /**
2031
- * Custom interval in days
2172
+ * Base currency code
2032
2173
  */
2033
- customIntervalDays?: {
2034
- [key: string]: unknown;
2035
- };
2174
+ baseCurrency?: string;
2036
2175
  /**
2037
- * Currency code
2176
+ * Benchmark symbol
2038
2177
  */
2039
- currency: string;
2178
+ benchmark?: string;
2040
2179
  /**
2041
- * Payee matching pattern
2180
+ * Color scheme
2042
2181
  */
2043
- matchPayeePattern?: {
2044
- [key: string]: unknown;
2045
- };
2182
+ colorScheme?: 'DARK' | 'LIGHT';
2046
2183
  /**
2047
- * Amount tolerance percentage
2184
+ * Date range filter
2048
2185
  */
2049
- matchAmountTolerance: number;
2186
+ dateRange?: string;
2050
2187
  /**
2051
- * Default expense account
2188
+ * Emergency fund amount
2052
2189
  */
2053
- defaultExpenseAccount?: {
2054
- [key: string]: unknown;
2055
- };
2190
+ emergencyFund?: number;
2056
2191
  /**
2057
- * Default payment account
2192
+ * Account filter IDs
2058
2193
  */
2059
- defaultPaymentAccount?: {
2060
- [key: string]: unknown;
2061
- };
2194
+ 'filters.accounts'?: Array<string>;
2062
2195
  /**
2063
- * Default payee
2196
+ * Asset class filters
2064
2197
  */
2065
- defaultPayee?: {
2066
- [key: string]: unknown;
2067
- };
2198
+ 'filters.assetClasses'?: Array<string>;
2068
2199
  /**
2069
- * Whether rule is active
2200
+ * Data source filter
2070
2201
  */
2071
- isActive: boolean;
2202
+ 'filters.dataSource'?: string;
2072
2203
  /**
2073
- * Rule start date (YYYY-MM-DD)
2204
+ * Symbol filter
2074
2205
  */
2075
- startDate: string;
2206
+ 'filters.symbol'?: string;
2076
2207
  /**
2077
- * Rule end date (YYYY-MM-DD)
2208
+ * Tag filters
2078
2209
  */
2079
- endDate?: {
2080
- [key: string]: unknown;
2081
- };
2210
+ 'filters.tags'?: Array<string>;
2082
2211
  /**
2083
- * Auto-create transaction on expected date
2212
+ * Enable experimental features
2084
2213
  */
2085
- autoCreate: boolean;
2214
+ isExperimentalFeatures?: boolean;
2086
2215
  /**
2087
- * Last matched occurrence date (YYYY-MM-DD)
2216
+ * Enable restricted view mode
2088
2217
  */
2089
- lastOccurrence?: {
2090
- [key: string]: unknown;
2091
- };
2218
+ isRestrictedView?: boolean;
2092
2219
  /**
2093
- * Total matched transactions count
2220
+ * Language code
2094
2221
  */
2095
- totalCount: number;
2222
+ language?: string;
2096
2223
  /**
2097
- * Created at timestamp
2224
+ * Locale code
2098
2225
  */
2099
- createdAt: string;
2226
+ locale?: string;
2100
2227
  /**
2101
- * Updated at timestamp
2228
+ * Projected total amount
2102
2229
  */
2103
- updatedAt: string;
2230
+ projectedTotalAmount?: number;
2104
2231
  /**
2105
- * Number of pending expected transactions
2106
- */
2107
- pendingCount: number;
2108
- /**
2109
- * Number of overdue expected transactions
2110
- */
2111
- overdueCount: number;
2112
- /**
2113
- * Next expected date (YYYY-MM-DD)
2114
- */
2115
- nextExpectedDate?: {
2116
- [key: string]: unknown;
2117
- };
2118
- /**
2119
- * Total amount of all matched transactions
2120
- */
2121
- totalAmount: number;
2122
- /**
2123
- * Average amount per transaction
2124
- */
2125
- averageAmount: number;
2126
- /**
2127
- * Number of matched transactions
2128
- */
2129
- transactionCount: number;
2130
- /**
2131
- * First matched transaction date (YYYY-MM-DD)
2232
+ * Retirement date in ISO 8601 format
2132
2233
  */
2133
- firstDate?: {
2134
- [key: string]: unknown;
2135
- };
2234
+ retirementDate?: string;
2136
2235
  /**
2137
- * Last matched transaction date (YYYY-MM-DD)
2236
+ * Savings rate percentage
2138
2237
  */
2139
- lastDate?: {
2140
- [key: string]: unknown;
2141
- };
2238
+ savingsRate?: number;
2142
2239
  /**
2143
- * Amount variance (standard deviation squared)
2240
+ * View mode
2144
2241
  */
2145
- variance: number;
2242
+ viewMode?: 'DEFAULT' | 'ZEN';
2243
+ };
2244
+ /**
2245
+ * Color scheme
2246
+ */
2247
+ type colorScheme = 'DARK' | 'LIGHT';
2248
+ /**
2249
+ * View mode
2250
+ */
2251
+ type viewMode = 'DEFAULT' | 'ZEN';
2252
+ type UpdatePropertyDto = {
2146
2253
  /**
2147
- * Number of upcoming expected transactions
2254
+ * Property value
2148
2255
  */
2149
- upcomingCount: number;
2256
+ value: string;
2150
2257
  };
2151
- type UpdateRecurringRuleDto = {
2258
+ type CreateRecurringRuleDto = {
2152
2259
  /**
2153
- * Rule name
2260
+ * Rule name (unique per user)
2154
2261
  */
2155
- name?: string;
2262
+ name: string;
2156
2263
  /**
2157
2264
  * Icon emoji
2158
2265
  */
@@ -2160,17 +2267,17 @@ type UpdateRecurringRuleDto = {
2160
2267
  /**
2161
2268
  * Recurring frequency
2162
2269
  */
2163
- frequency?: 'WEEKLY' | 'BIWEEKLY' | 'MONTHLY' | 'BIMONTHLY' | 'QUARTERLY' | 'YEARLY' | 'CUSTOM';
2270
+ frequency: 'WEEKLY' | 'BIWEEKLY' | 'MONTHLY' | 'BIMONTHLY' | 'QUARTERLY' | 'YEARLY' | 'CUSTOM';
2164
2271
  /**
2165
- * Expected amount
2272
+ * Expected amount (positive number)
2166
2273
  */
2167
- expectedAmount?: number;
2274
+ expectedAmount: number;
2168
2275
  /**
2169
2276
  * Expected day of month (1-31)
2170
2277
  */
2171
2278
  expectedDay?: number;
2172
2279
  /**
2173
- * Custom interval in days
2280
+ * Custom interval in days (required for CUSTOM frequency)
2174
2281
  */
2175
2282
  customIntervalDays?: number;
2176
2283
  /**
@@ -2178,109 +2285,123 @@ type UpdateRecurringRuleDto = {
2178
2285
  */
2179
2286
  currency?: string;
2180
2287
  /**
2181
- * Payee matching pattern
2288
+ * Payee matching pattern (supports wildcards)
2182
2289
  */
2183
2290
  matchPayeePattern?: string;
2184
2291
  /**
2185
2292
  * Amount tolerance percentage (0-1)
2186
2293
  */
2187
- matchAmountTolerance?: number;
2294
+ matchAmountTolerance: number;
2188
2295
  /**
2189
- * Default expense account
2296
+ * Default expense account for auto-create
2190
2297
  */
2191
2298
  defaultExpenseAccount?: string;
2192
2299
  /**
2193
- * Default payment account
2300
+ * Default payment account for auto-create
2194
2301
  */
2195
2302
  defaultPaymentAccount?: string;
2196
2303
  /**
2197
- * Default payee
2304
+ * Default payee for auto-create
2198
2305
  */
2199
2306
  defaultPayee?: string;
2200
2307
  /**
2201
- * Auto-create transaction
2308
+ * Auto-create transaction when expected date arrives
2202
2309
  */
2203
- autoCreate?: boolean;
2310
+ autoCreate: boolean;
2204
2311
  /**
2205
- * Rule active status
2312
+ * Rule start date (ISO format)
2206
2313
  */
2207
- isActive?: boolean;
2314
+ startDate?: string;
2208
2315
  /**
2209
2316
  * Rule end date (ISO format)
2210
2317
  */
2211
2318
  endDate?: string;
2212
2319
  };
2213
- type ExpectedTransactionRuleDto = {
2320
+ /**
2321
+ * Recurring frequency
2322
+ */
2323
+ type frequency = 'WEEKLY' | 'BIWEEKLY' | 'MONTHLY' | 'BIMONTHLY' | 'QUARTERLY' | 'YEARLY' | 'CUSTOM';
2324
+ type RecurringRuleResponseDto = {
2325
+ /**
2326
+ * Rule ID
2327
+ */
2328
+ id: string;
2329
+ /**
2330
+ * User ID
2331
+ */
2332
+ userId: string;
2214
2333
  /**
2215
2334
  * Rule name
2216
2335
  */
2217
2336
  name: string;
2218
2337
  /**
2219
- * Rule icon
2338
+ * Icon emoji
2220
2339
  */
2221
- icon?: {
2222
- [key: string]: unknown;
2223
- };
2340
+ icon?: string;
2224
2341
  /**
2225
- * Rule frequency
2342
+ * Recurring frequency
2226
2343
  */
2227
2344
  frequency: string;
2345
+ /**
2346
+ * Expected amount
2347
+ */
2348
+ expectedAmount: number;
2349
+ /**
2350
+ * Expected day of month
2351
+ */
2352
+ expectedDay?: number;
2353
+ /**
2354
+ * Custom interval in days
2355
+ */
2356
+ customIntervalDays?: number;
2228
2357
  /**
2229
2358
  * Currency code
2230
2359
  */
2231
2360
  currency: string;
2232
- };
2233
- type ExpectedTransactionResponseDto = {
2234
2361
  /**
2235
- * Expected transaction ID
2362
+ * Payee matching pattern
2236
2363
  */
2237
- id: string;
2364
+ matchPayeePattern?: string;
2238
2365
  /**
2239
- * User ID
2366
+ * Amount tolerance percentage
2240
2367
  */
2241
- userId: string;
2368
+ matchAmountTolerance: number;
2242
2369
  /**
2243
- * Associated rule ID
2370
+ * Default expense account
2244
2371
  */
2245
- ruleId: string;
2372
+ defaultExpenseAccount?: string;
2246
2373
  /**
2247
- * Expected date (YYYY-MM-DD)
2374
+ * Default payment account
2248
2375
  */
2249
- expectedDate: string;
2376
+ defaultPaymentAccount?: string;
2250
2377
  /**
2251
- * Expected amount
2378
+ * Default payee
2252
2379
  */
2253
- expectedAmount: number;
2380
+ defaultPayee?: string;
2254
2381
  /**
2255
- * Status (PENDING, COMPLETED, SKIPPED)
2382
+ * Whether rule is active
2256
2383
  */
2257
- status: string;
2384
+ isActive: boolean;
2258
2385
  /**
2259
- * Matched transaction ID
2386
+ * Rule start date (YYYY-MM-DD)
2260
2387
  */
2261
- matchedTransactionId?: {
2262
- [key: string]: unknown;
2263
- };
2388
+ startDate: string;
2264
2389
  /**
2265
- * Match timestamp (ISO 8601)
2390
+ * Rule end date (YYYY-MM-DD)
2266
2391
  */
2267
- matchedAt?: {
2268
- [key: string]: unknown;
2269
- };
2392
+ endDate?: string;
2270
2393
  /**
2271
- * Match confidence score (0-1)
2394
+ * Auto-create transaction on expected date
2272
2395
  */
2273
- matchConfidence?: {
2274
- [key: string]: unknown;
2275
- };
2396
+ autoCreate: boolean;
2276
2397
  /**
2277
- * Whether this expected transaction is overdue
2398
+ * Last matched occurrence date (YYYY-MM-DD)
2278
2399
  */
2279
- isOverdue: boolean;
2400
+ lastOccurrence?: string;
2280
2401
  /**
2281
- * Rule information
2402
+ * Total matched transactions count
2282
2403
  */
2283
- rule: ExpectedTransactionRuleDto;
2404
+ totalCount: number;
2284
2405
  /**
2285
2406
  * Created at timestamp
2286
2407
  */
@@ -2290,410 +2411,396 @@ type ExpectedTransactionResponseDto = {
2290
2411
  */
2291
2412
  updatedAt: string;
2292
2413
  };
2293
- type ExpectedTransactionListResponseDto = {
2294
- items: Array<ExpectedTransactionResponseDto>;
2295
- /**
2296
- * Total count
2297
- */
2298
- total: number;
2299
- };
2300
- type ConfirmMatchDto = {
2414
+ type CreateRuleFromTransactionDto = {
2301
2415
  /**
2302
- * Transaction ID to match with
2416
+ * Recurring frequency
2303
2417
  */
2304
- transactionId: string;
2305
- };
2306
- type EnterNowDto = {
2418
+ frequency: 'WEEKLY' | 'BIWEEKLY' | 'MONTHLY' | 'BIMONTHLY' | 'QUARTERLY' | 'YEARLY' | 'CUSTOM';
2307
2419
  /**
2308
- * Override expense account (uses rule default if not provided)
2420
+ * Optional name override (default: transaction payee)
2309
2421
  */
2310
- expenseAccount?: string;
2422
+ name?: string;
2311
2423
  /**
2312
- * Override payment account (uses rule default if not provided)
2424
+ * Optional icon emoji
2313
2425
  */
2314
- paymentAccount?: string;
2426
+ icon?: string;
2427
+ };
2428
+ type RecurringRuleWithStatsResponseDto = {
2315
2429
  /**
2316
- * Override amount (uses expected amount if not provided)
2430
+ * Rule ID
2317
2431
  */
2318
- amount?: number;
2432
+ id: string;
2319
2433
  /**
2320
- * Override payee (uses rule default if not provided)
2434
+ * User ID
2321
2435
  */
2322
- payee?: string;
2436
+ userId: string;
2323
2437
  /**
2324
- * Optional narration
2438
+ * Rule name
2325
2439
  */
2326
- narration?: string;
2327
- };
2328
- type ForecastItemDto = {
2440
+ name: string;
2329
2441
  /**
2330
- * Rule name
2442
+ * Icon emoji
2331
2443
  */
2332
- rule: string;
2444
+ icon?: string;
2333
2445
  /**
2334
- * Rule ID
2446
+ * Recurring frequency
2335
2447
  */
2336
- ruleId: string;
2448
+ frequency: string;
2337
2449
  /**
2338
2450
  * Expected amount
2339
2451
  */
2340
- amount: number;
2452
+ expectedAmount: number;
2341
2453
  /**
2342
- * Expected date (YYYY-MM-DD)
2454
+ * Expected day of month
2343
2455
  */
2344
- date: string;
2456
+ expectedDay?: number;
2345
2457
  /**
2346
- * Rule icon emoji
2458
+ * Custom interval in days
2347
2459
  */
2348
- icon: string | null;
2460
+ customIntervalDays?: number;
2349
2461
  /**
2350
2462
  * Currency code
2351
2463
  */
2352
2464
  currency: string;
2353
- };
2354
- type MonthlyForecastDto = {
2355
2465
  /**
2356
- * Month (YYYY-MM)
2466
+ * Payee matching pattern
2357
2467
  */
2358
- month: string;
2468
+ matchPayeePattern?: string;
2359
2469
  /**
2360
- * Total expected outflow for the month
2470
+ * Amount tolerance percentage
2361
2471
  */
2362
- expectedOutflow: number;
2472
+ matchAmountTolerance: number;
2363
2473
  /**
2364
- * Number of expected transactions
2474
+ * Default expense account
2365
2475
  */
2366
- itemCount: number;
2476
+ defaultExpenseAccount?: string;
2367
2477
  /**
2368
- * Breakdown by currency
2478
+ * Default payment account
2369
2479
  */
2370
- byCurrency: {
2371
- [key: string]: unknown;
2372
- };
2480
+ defaultPaymentAccount?: string;
2373
2481
  /**
2374
- * Individual forecast items
2482
+ * Default payee
2375
2483
  */
2376
- items: Array<ForecastItemDto>;
2377
- };
2378
- type ForecastResponseDto = {
2484
+ defaultPayee?: string;
2379
2485
  /**
2380
- * Monthly forecast data
2486
+ * Whether rule is active
2381
2487
  */
2382
- forecast: Array<MonthlyForecastDto>;
2488
+ isActive: boolean;
2383
2489
  /**
2384
- * Total expected outflow across all months
2490
+ * Rule start date (YYYY-MM-DD)
2385
2491
  */
2386
- totalOutflow: number;
2492
+ startDate: string;
2387
2493
  /**
2388
- * Total by currency across all months
2494
+ * Rule end date (YYYY-MM-DD)
2389
2495
  */
2390
- totalByCurrency: {
2391
- [key: string]: unknown;
2392
- };
2496
+ endDate?: string;
2393
2497
  /**
2394
- * Number of active recurring rules included
2498
+ * Auto-create transaction on expected date
2395
2499
  */
2396
- rulesCount: number;
2500
+ autoCreate: boolean;
2397
2501
  /**
2398
- * Forecast period start date
2502
+ * Last matched occurrence date (YYYY-MM-DD)
2399
2503
  */
2400
- periodStart: string;
2504
+ lastOccurrence?: string;
2401
2505
  /**
2402
- * Forecast period end date
2506
+ * Total matched transactions count
2403
2507
  */
2404
- periodEnd: string;
2405
- };
2406
- type CurrencyBalanceDto = {
2508
+ totalCount: number;
2407
2509
  /**
2408
- * ISO 4217 currency code
2510
+ * Created at timestamp
2409
2511
  */
2410
- currency: string;
2512
+ createdAt: string;
2411
2513
  /**
2412
- * Balance amount
2514
+ * Updated at timestamp
2413
2515
  */
2414
- balance: string;
2415
- };
2416
- type TimeSeriesPointDto = {
2516
+ updatedAt: string;
2417
2517
  /**
2418
- * Date in YYYY-MM-DD format
2518
+ * Number of pending expected transactions
2419
2519
  */
2420
- date: string;
2520
+ pendingCount: number;
2421
2521
  /**
2422
- * Value at this date (in base currency)
2522
+ * Number of overdue expected transactions
2423
2523
  */
2424
- value: string;
2524
+ overdueCount: number;
2425
2525
  /**
2426
- * Change from previous point
2526
+ * Next expected date (YYYY-MM-DD)
2427
2527
  */
2428
- change?: {
2429
- [key: string]: unknown;
2430
- };
2528
+ nextExpectedDate?: string;
2431
2529
  /**
2432
- * Total assets at this date (in base currency)
2530
+ * Total amount of all matched transactions
2433
2531
  */
2434
- assets?: string;
2532
+ totalAmount: number;
2435
2533
  /**
2436
- * Total liabilities at this date (in base currency)
2534
+ * Average amount per transaction
2437
2535
  */
2438
- liabilities?: string;
2536
+ averageAmount: number;
2439
2537
  /**
2440
- * Multi-currency breakdown for this point
2538
+ * Number of matched transactions
2441
2539
  */
2442
- byCurrency?: Array<CurrencyBalanceDto>;
2443
- };
2444
- type TrendSummaryDto = {
2540
+ transactionCount: number;
2445
2541
  /**
2446
- * Value at start of period
2542
+ * First matched transaction date (YYYY-MM-DD)
2447
2543
  */
2448
- startValue: string;
2544
+ firstDate?: string;
2449
2545
  /**
2450
- * Value at end of period
2546
+ * Last matched transaction date (YYYY-MM-DD)
2451
2547
  */
2452
- endValue: string;
2548
+ lastDate?: string;
2453
2549
  /**
2454
- * Total change over period
2550
+ * Amount variance (standard deviation squared)
2455
2551
  */
2456
- totalChange: string;
2552
+ variance: number;
2457
2553
  /**
2458
- * Total change percentage
2554
+ * Number of upcoming expected transactions
2459
2555
  */
2460
- totalChangePercentage: string;
2556
+ upcomingCount: number;
2461
2557
  };
2462
- type MultiCurrencyPointDto = {
2558
+ type UpdateRecurringRuleDto = {
2463
2559
  /**
2464
- * Date in YYYY-MM-DD format
2560
+ * Rule name (unique per user)
2465
2561
  */
2466
- date: string;
2562
+ name?: string;
2467
2563
  /**
2468
- * Balances by currency
2564
+ * Icon emoji
2469
2565
  */
2470
- byCurrency: Array<CurrencyBalanceDto>;
2471
- };
2472
- type PortfolioTrendsResponseDto = {
2566
+ icon?: string;
2473
2567
  /**
2474
- * Time series data points
2568
+ * Recurring frequency
2475
2569
  */
2476
- series: Array<TimeSeriesPointDto>;
2570
+ frequency?: 'WEEKLY' | 'BIWEEKLY' | 'MONTHLY' | 'BIMONTHLY' | 'QUARTERLY' | 'YEARLY' | 'CUSTOM';
2477
2571
  /**
2478
- * Period summary
2572
+ * Expected amount (positive number)
2479
2573
  */
2480
- summary: TrendSummaryDto;
2574
+ expectedAmount?: number;
2481
2575
  /**
2482
- * Period requested
2576
+ * Expected day of month (1-31)
2483
2577
  */
2484
- period: string;
2578
+ expectedDay?: number;
2485
2579
  /**
2486
- * Data granularity
2580
+ * Currency code
2487
2581
  */
2488
- granularity: string;
2582
+ currency?: string;
2489
2583
  /**
2490
- * Base currency for converted values
2584
+ * Payee matching pattern (supports wildcards)
2491
2585
  */
2492
- currency: string;
2586
+ matchPayeePattern?: string;
2493
2587
  /**
2494
- * Multi-currency time series (each point has currency breakdown)
2588
+ * Amount tolerance percentage (0-1)
2495
2589
  */
2496
- byCurrency?: Array<MultiCurrencyPointDto>;
2590
+ matchAmountTolerance?: number;
2497
2591
  /**
2498
- * Exchange rate warnings
2592
+ * Default expense account for auto-create
2499
2593
  */
2500
- warnings?: Array<ExchangeRateWarningDto>;
2501
- };
2502
- type CashFlowPointDto = {
2594
+ defaultExpenseAccount?: string;
2503
2595
  /**
2504
- * Month key (YYYY-MM)
2596
+ * Default payment account for auto-create
2505
2597
  */
2506
- month: string;
2598
+ defaultPaymentAccount?: string;
2507
2599
  /**
2508
- * Income in base currency (absolute, converted)
2600
+ * Default payee for auto-create
2509
2601
  */
2510
- income: string;
2602
+ defaultPayee?: string;
2511
2603
  /**
2512
- * Expense in base currency (absolute, converted)
2604
+ * Auto-create transaction when expected date arrives
2513
2605
  */
2514
- expense: string;
2606
+ autoCreate?: boolean;
2515
2607
  /**
2516
- * netSavings = income − expense (savings positive)
2608
+ * Rule end date (ISO format)
2517
2609
  */
2518
- netSavings: string;
2610
+ endDate?: string;
2611
+ /**
2612
+ * Custom interval in days
2613
+ */
2614
+ customIntervalDays?: number;
2615
+ /**
2616
+ * Rule active status
2617
+ */
2618
+ isActive?: boolean;
2519
2619
  };
2520
- type CashFlowTrendSummaryDto = {
2620
+ type ExpectedTransactionRuleDto = {
2521
2621
  /**
2522
- * Total income across the period
2622
+ * Rule name
2523
2623
  */
2524
- totalIncome: string;
2624
+ name: string;
2525
2625
  /**
2526
- * Total expense across the period
2626
+ * Rule icon
2527
2627
  */
2528
- totalExpense: string;
2628
+ icon?: string;
2529
2629
  /**
2530
- * income − expense across the period
2630
+ * Rule frequency
2531
2631
  */
2532
- totalNetSavings: string;
2632
+ frequency: string;
2533
2633
  /**
2534
- * totalNetSavings divided by the window length (N months, incl. zero-filled)
2634
+ * Currency code
2535
2635
  */
2536
- averageMonthlyNetSavings: string;
2636
+ currency: string;
2537
2637
  };
2538
- type CashFlowTrendsResponseDto = {
2638
+ type ExpectedTransactionResponseDto = {
2539
2639
  /**
2540
- * Monthly cash-flow series (fixed N-month window, zero-filled)
2640
+ * Expected transaction ID
2541
2641
  */
2542
- series: Array<CashFlowPointDto>;
2642
+ id: string;
2543
2643
  /**
2544
- * Period totals
2644
+ * User ID
2545
2645
  */
2546
- summary: CashFlowTrendSummaryDto;
2646
+ userId: string;
2547
2647
  /**
2548
- * Period requested
2648
+ * Associated rule ID
2549
2649
  */
2550
- period: string;
2650
+ ruleId: string;
2551
2651
  /**
2552
- * Data granularity (v1 returns month buckets)
2652
+ * Expected date (YYYY-MM-DD)
2553
2653
  */
2554
- granularity: string;
2654
+ expectedDate: string;
2555
2655
  /**
2556
- * Base currency for converted values
2656
+ * Expected amount
2557
2657
  */
2558
- currency: string;
2658
+ expectedAmount: number;
2559
2659
  /**
2560
- * Exchange rate warnings (e.g. missing rate for a currency)
2660
+ * Status (PENDING, COMPLETED, SKIPPED)
2561
2661
  */
2562
- warnings?: Array<ExchangeRateWarningDto>;
2563
- };
2564
- type GenerateSnapshotBody = unknown;
2565
- type GenerateSnapshotResponse = unknown;
2566
- type BackfillSnapshotsBody = unknown;
2567
- type BackfillSnapshotsResponse = unknown;
2568
- type DeleteOwnUserDto = {
2662
+ status: string;
2569
2663
  /**
2570
- * Access token for user verification
2664
+ * Matched transaction ID
2571
2665
  */
2572
- accessToken: string;
2573
- };
2574
- type SignupDto = {
2666
+ matchedTransactionId?: string;
2575
2667
  /**
2576
- * Cloudflare Turnstile verification token (optional when Turnstile disabled)
2668
+ * Match timestamp (ISO 8601)
2577
2669
  */
2578
- turnstileToken?: string;
2579
- };
2580
- type SignupResponseDto = {
2670
+ matchedAt?: string;
2581
2671
  /**
2582
- * JWT auth token
2672
+ * Match confidence score (0-1)
2583
2673
  */
2584
- authToken: string;
2674
+ matchConfidence?: number;
2585
2675
  /**
2586
- * Auto-generated access token
2676
+ * Whether this expected transaction is overdue
2587
2677
  */
2588
- accessToken: string;
2678
+ isOverdue: boolean;
2589
2679
  /**
2590
- * Assigned user role
2680
+ * Rule information
2591
2681
  */
2592
- role: 'USER' | 'ADMIN' | 'DEMO' | 'INACTIVE' | 'PAID' | 'OPS';
2682
+ rule: ExpectedTransactionRuleDto;
2683
+ /**
2684
+ * Created at timestamp
2685
+ */
2686
+ createdAt: string;
2687
+ /**
2688
+ * Updated at timestamp
2689
+ */
2690
+ updatedAt: string;
2593
2691
  };
2594
- /**
2595
- * Assigned user role
2596
- */
2597
- type role = 'USER' | 'ADMIN' | 'DEMO' | 'INACTIVE' | 'PAID' | 'OPS';
2598
- type UpdateUserSettingDto = {
2692
+ type ExpectedTransactionListResponseDto = {
2693
+ items: Array<ExpectedTransactionResponseDto>;
2599
2694
  /**
2600
- * Security ID
2695
+ * Total count
2601
2696
  */
2602
- secId?: number;
2697
+ total: number;
2698
+ };
2699
+ type ConfirmMatchDto = {
2603
2700
  /**
2604
- * Annual interest rate
2701
+ * Transaction ID to match with
2605
2702
  */
2606
- annualInterestRate?: number;
2703
+ transactionId: string;
2704
+ };
2705
+ type EnterNowDto = {
2607
2706
  /**
2608
- * Currency code
2707
+ * Override expense account (uses rule default if not provided)
2609
2708
  */
2610
- currency?: string;
2709
+ expenseAccount?: string;
2611
2710
  /**
2612
- * Base currency code
2711
+ * Override payment account (uses rule default if not provided)
2613
2712
  */
2614
- baseCurrency?: string;
2713
+ paymentAccount?: string;
2615
2714
  /**
2616
- * Benchmark symbol
2715
+ * Override amount (uses expected amount if not provided)
2617
2716
  */
2618
- benchmark?: string;
2717
+ amount?: number;
2619
2718
  /**
2620
- * Color scheme
2719
+ * Override payee (uses rule default if not provided)
2621
2720
  */
2622
- colorScheme?: 'DARK' | 'LIGHT';
2721
+ payee?: string;
2623
2722
  /**
2624
- * Date range filter
2723
+ * Optional narration
2625
2724
  */
2626
- dateRange?: string;
2725
+ narration?: string;
2726
+ };
2727
+ type ForecastItemDto = {
2627
2728
  /**
2628
- * Emergency fund amount
2729
+ * Rule name
2629
2730
  */
2630
- emergencyFund?: number;
2731
+ rule: string;
2631
2732
  /**
2632
- * Account filter IDs
2733
+ * Rule ID
2633
2734
  */
2634
- 'filters.accounts'?: Array<string>;
2735
+ ruleId: string;
2635
2736
  /**
2636
- * Asset class filters
2737
+ * Expected amount
2637
2738
  */
2638
- 'filters.assetClasses'?: Array<string>;
2739
+ amount: number;
2639
2740
  /**
2640
- * Data source filter
2741
+ * Expected date (YYYY-MM-DD)
2742
+ */
2743
+ date: string;
2744
+ /**
2745
+ * Rule icon emoji
2746
+ */
2747
+ icon: string | null;
2748
+ /**
2749
+ * Currency code
2641
2750
  */
2642
- 'filters.dataSource'?: string;
2751
+ currency: string;
2752
+ };
2753
+ type MonthlyForecastDto = {
2643
2754
  /**
2644
- * Symbol filter
2755
+ * Month (YYYY-MM)
2645
2756
  */
2646
- 'filters.symbol'?: string;
2757
+ month: string;
2647
2758
  /**
2648
- * Tag filters
2759
+ * Total expected outflow for the month
2649
2760
  */
2650
- 'filters.tags'?: Array<string>;
2761
+ expectedOutflow: number;
2651
2762
  /**
2652
- * Enable experimental features
2763
+ * Number of expected transactions
2653
2764
  */
2654
- isExperimentalFeatures?: boolean;
2765
+ itemCount: number;
2655
2766
  /**
2656
- * Enable restricted view mode
2767
+ * Breakdown by currency
2657
2768
  */
2658
- isRestrictedView?: boolean;
2769
+ byCurrency: {
2770
+ [key: string]: unknown;
2771
+ };
2659
2772
  /**
2660
- * Language code
2773
+ * Individual forecast items
2661
2774
  */
2662
- language?: string;
2775
+ items: Array<ForecastItemDto>;
2776
+ };
2777
+ type ForecastResponseDto = {
2663
2778
  /**
2664
- * Locale code
2779
+ * Monthly forecast data
2665
2780
  */
2666
- locale?: string;
2781
+ forecast: Array<MonthlyForecastDto>;
2667
2782
  /**
2668
- * Projected total amount
2783
+ * Total expected outflow across all months
2669
2784
  */
2670
- projectedTotalAmount?: number;
2785
+ totalOutflow: number;
2671
2786
  /**
2672
- * Retirement date in ISO 8601 format
2787
+ * Total by currency across all months
2673
2788
  */
2674
- retirementDate?: string;
2789
+ totalByCurrency: {
2790
+ [key: string]: unknown;
2791
+ };
2675
2792
  /**
2676
- * Savings rate percentage
2793
+ * Number of active recurring rules included
2677
2794
  */
2678
- savingsRate?: number;
2795
+ rulesCount: number;
2679
2796
  /**
2680
- * View mode
2797
+ * Forecast period start date
2681
2798
  */
2682
- viewMode?: 'DEFAULT' | 'ZEN';
2683
- };
2684
- /**
2685
- * Color scheme
2686
- */
2687
- type colorScheme = 'DARK' | 'LIGHT';
2688
- /**
2689
- * View mode
2690
- */
2691
- type viewMode = 'DEFAULT' | 'ZEN';
2692
- type UpdatePropertyDto = {
2799
+ periodStart: string;
2693
2800
  /**
2694
- * Property value
2801
+ * Forecast period end date
2695
2802
  */
2696
- value: string;
2803
+ periodEnd: string;
2697
2804
  };
2698
2805
  type CreateTransactionRuleDto = {
2699
2806
  name: string;
@@ -2997,14 +3104,14 @@ type UpdateTransactionRuleDto = {
2997
3104
  */
2998
3105
  amountMax?: number;
2999
3106
  priority?: number;
3000
- /**
3001
- * Enable or disable the rule
3002
- */
3003
- enabled?: boolean;
3004
3107
  additionalTags?: Array<unknown[]>;
3005
3108
  additionalMetadata?: {
3006
3109
  [key: string]: unknown;
3007
3110
  };
3111
+ /**
3112
+ * Enable or disable the rule
3113
+ */
3114
+ enabled?: boolean;
3008
3115
  };
3009
3116
  type TestRuleDto = {
3010
3117
  narration: string;
@@ -3033,6 +3140,42 @@ type TestRuleResponseDto = {
3033
3140
  [key: string]: unknown;
3034
3141
  };
3035
3142
  };
3143
+ type CategoryCatalogEntryDto = {
3144
+ /**
3145
+ * Category slug (single source-of-truth)
3146
+ */
3147
+ slug: string;
3148
+ /**
3149
+ * Display scenario group (maps to frontend picker _scenario)
3150
+ */
3151
+ scenario: 'expense' | 'income' | 'investment' | 'banking' | 'transfer' | 'payment';
3152
+ /**
3153
+ * Lucide icon name
3154
+ */
3155
+ icon: string;
3156
+ /**
3157
+ * Applicable regions ('*' = all, 'cn' = CN-only)
3158
+ */
3159
+ regions: Array<string>;
3160
+ };
3161
+ /**
3162
+ * Display scenario group (maps to frontend picker _scenario)
3163
+ */
3164
+ type scenario = 'expense' | 'income' | 'investment' | 'banking' | 'transfer' | 'payment';
3165
+ type CategoryCatalogListResponseDto = {
3166
+ /**
3167
+ * Category entries (region-scoped, query-filtered)
3168
+ */
3169
+ items: Array<CategoryCatalogEntryDto>;
3170
+ /**
3171
+ * Total category entries for the region (before query filtering)
3172
+ */
3173
+ total: number;
3174
+ /**
3175
+ * Region code
3176
+ */
3177
+ region: string;
3178
+ };
3036
3179
  type CreateBeanEventDto = {
3037
3180
  /**
3038
3181
  * Life event date (ISO 8601)
@@ -3136,6 +3279,10 @@ type OnboardingAccountDto = {
3136
3279
  * Platform ID to bind the account to (references Platform.id); omit for unbound
3137
3280
  */
3138
3281
  platformId?: string;
3282
+ /**
3283
+ * User-set display name override (omit/null = keep the derived name)
3284
+ */
3285
+ displayName?: string | null;
3139
3286
  };
3140
3287
  type OnboardingDto = {
3141
3288
  /**
@@ -3620,11 +3767,85 @@ type ExternalAccountLinkListResponseDto = {
3620
3767
  };
3621
3768
  type ParserTelemetryReportDto = unknown;
3622
3769
  type UncoveredFormatMissDto = unknown;
3770
+ type ClientParsedDataDto = {
3771
+ /**
3772
+ * Transaction amount
3773
+ */
3774
+ amount?: number;
3775
+ /**
3776
+ * Currency code
3777
+ */
3778
+ currency?: string;
3779
+ /**
3780
+ * Transaction date (ISO 8601)
3781
+ */
3782
+ date?: string;
3783
+ /**
3784
+ * Payee/merchant name
3785
+ */
3786
+ payee?: string;
3787
+ /**
3788
+ * Transaction narration
3789
+ */
3790
+ narration?: string;
3791
+ /**
3792
+ * Category slug
3793
+ */
3794
+ category?: string;
3795
+ /**
3796
+ * Income type
3797
+ */
3798
+ incomeType?: string;
3799
+ /**
3800
+ * Income source
3801
+ */
3802
+ incomeSource?: string;
3803
+ /**
3804
+ * Security symbol code (e.g., 600519, AAPL)
3805
+ */
3806
+ symbol?: string;
3807
+ /**
3808
+ * Quantity of shares/units
3809
+ */
3810
+ quantity?: number;
3811
+ /**
3812
+ * Unit price per share/unit
3813
+ */
3814
+ price?: number;
3815
+ /**
3816
+ * Investment action
3817
+ */
3818
+ investmentAction?: 'buy' | 'sell';
3819
+ /**
3820
+ * Payment source: asset (default) or liability (credit card)
3821
+ */
3822
+ paymentSource?: 'asset' | 'liability';
3823
+ /**
3824
+ * Liability account hint (CreditCard/Huabei/Baitiao)
3825
+ */
3826
+ liabilityHint?: string;
3827
+ /**
3828
+ * Display-only warning from the prior response; accepted but ignored.
3829
+ */
3830
+ warning?: string;
3831
+ };
3832
+ /**
3833
+ * Investment action
3834
+ */
3835
+ type investmentAction = 'buy' | 'sell';
3836
+ /**
3837
+ * Payment source: asset (default) or liability (credit card)
3838
+ */
3839
+ type paymentSource = 'asset' | 'liability';
3623
3840
  type ProcessNlpDto = {
3624
3841
  /**
3625
- * Natural language text describing a transaction (Chinese)
3842
+ * Natural language text describing a transaction. Optional when `confirm` is true (structured confirm); otherwise required.
3626
3843
  */
3627
- message: string;
3844
+ message?: string;
3845
+ /**
3846
+ * Structured confirm signal — bypasses NL confirm-word matching when true. Send parsedData field edits alongside. The NL word-list path is the fallback.
3847
+ */
3848
+ confirm?: boolean;
3628
3849
  /**
3629
3850
  * Session ID for multi-turn conversation (auto-generated if not provided)
3630
3851
  */
@@ -3632,18 +3853,32 @@ type ProcessNlpDto = {
3632
3853
  /**
3633
3854
  * Parsed data from previous NLP response for session recovery. Send back the parsedData received in confirm_payee/confirm responses.
3634
3855
  */
3635
- parsedData?: {
3636
- [key: string]: unknown;
3637
- };
3856
+ parsedData?: ClientParsedDataDto;
3638
3857
  /**
3639
3858
  * confirm_rule echo-back: rule id selected from the prior confirm_rule response (matchedRule.id or alternatives[i].ruleId). Applied directly when the session is confirming_rule — no NL re-parse.
3640
3859
  */
3641
3860
  selectedRuleId?: string;
3642
3861
  /**
3643
- * confirm_account echo-back: account path selected from the prior confirm_account response (suggestedAccount, similarAccounts[i], or a typed path). Applied directly when the session is confirming_account — no NL re-parse.
3862
+ * confirm_account echo-back: account path selected from the prior confirm_account response (suggestedAccount, similarAccounts[i].path, or a typed path). Applied directly when the session is confirming_account — no NL re-parse.
3644
3863
  */
3645
3864
  selectedAccount?: string;
3865
+ /**
3866
+ * Viewpoint account hint: the beancount path the user drilled into (e.g. from an account drill-down). Tie-break only — never overrides accounts resolved from the text. Must be an owned, OPEN Assets:/Liabilities: account; unresolvable hints are silently ignored.
3867
+ */
3868
+ viewpointAccount?: string;
3869
+ /**
3870
+ * Viewpoint category hint: the ADR-0075 Group segment the user drilled into (e.g. 'Food'). Resolved to a concrete OPEN account in that group; tie-break only — never overrides a category resolved from the text.
3871
+ */
3872
+ viewpointCategory?: string;
3873
+ /**
3874
+ * Companion flow root for viewpointCategory ('income' | 'expense'), mirroring the ADR-0126 list-endpoint invariant. Derived from the session's routed intent (multi-turn) when absent; a first-turn flow-less category hint is dropped — send the flow explicitly.
3875
+ */
3876
+ viewpointFlow?: 'income' | 'expense';
3646
3877
  };
3878
+ /**
3879
+ * Companion flow root for viewpointCategory ('income' | 'expense'), mirroring the ADR-0126 list-endpoint invariant. Derived from the session's routed intent (multi-turn) when absent; a first-turn flow-less category hint is dropped — send the flow explicitly.
3880
+ */
3881
+ type viewpointFlow = 'income' | 'expense';
3647
3882
  type NlpTransactionInfoDto = {
3648
3883
  /**
3649
3884
  * Transaction ID
@@ -3736,14 +3971,6 @@ type NlpParsedDataDto = {
3736
3971
  */
3737
3972
  warning?: string;
3738
3973
  };
3739
- /**
3740
- * Investment action
3741
- */
3742
- type investmentAction = 'buy' | 'sell';
3743
- /**
3744
- * Payment source: asset (default) or liability (credit card)
3745
- */
3746
- type paymentSource = 'asset' | 'liability';
3747
3974
  type NlpSourceTransactionDto = {
3748
3975
  /**
3749
3976
  * Transaction date (ISO format)
@@ -3870,6 +4097,16 @@ type NlpRuleConfirmationDataDto = {
3870
4097
  */
3871
4098
  reasons: Array<string>;
3872
4099
  };
4100
+ type NlpAccountCandidateDto = {
4101
+ /**
4102
+ * Canonical beancount account path (echo back on selection)
4103
+ */
4104
+ path: string;
4105
+ /**
4106
+ * Localized display name (ADR-0114 read-time projection, user locale)
4107
+ */
4108
+ name: string;
4109
+ };
3873
4110
  type NlpAccountConfirmationDataDto = {
3874
4111
  /**
3875
4112
  * The invalid account name
@@ -3880,9 +4117,9 @@ type NlpAccountConfirmationDataDto = {
3880
4117
  */
3881
4118
  suggestedAccount?: string;
3882
4119
  /**
3883
- * Similar accounts for user selection
4120
+ * Similar accounts for user selection (path + localized name, #680)
3884
4121
  */
3885
- similarAccounts: Array<string>;
4122
+ similarAccounts: Array<NlpAccountCandidateDto>;
3886
4123
  /**
3887
4124
  * Error message explaining the issue
3888
4125
  */
@@ -4048,7 +4285,7 @@ type NlpResponseDto = {
4048
4285
  /**
4049
4286
  * Asset sub-type (only present when intent is "asset"). Determines which asset-related form to render.
4050
4287
  */
4051
- assetSubType?: 'transfer' | 'banking' | 'investment';
4288
+ assetSubType?: 'transfer' | 'banking' | 'investment' | 'lend' | 'lend_collect';
4052
4289
  /**
4053
4290
  * Liability sub-type (only present when intent is "liability"). borrow: borrowing money (Liabilities → Assets), repay: repaying debt (Assets → Liabilities).
4054
4291
  */
@@ -4152,7 +4389,7 @@ type intent = 'expense' | 'asset' | 'income' | 'liability' | 'equity';
4152
4389
  /**
4153
4390
  * Asset sub-type (only present when intent is "asset"). Determines which asset-related form to render.
4154
4391
  */
4155
- type assetSubType = 'transfer' | 'banking' | 'investment';
4392
+ type assetSubType = 'transfer' | 'banking' | 'investment' | 'lend' | 'lend_collect';
4156
4393
  /**
4157
4394
  * Liability sub-type (only present when intent is "liability"). borrow: borrowing money (Liabilities → Assets), repay: repaying debt (Assets → Liabilities).
4158
4395
  */
@@ -4183,13 +4420,21 @@ type PlatformListItemDto = {
4183
4420
  */
4184
4421
  canonical: string;
4185
4422
  /**
4186
- * Suggested path segment — canonical with first char uppercased (ACC_COMP_NAME_RE)
4423
+ * Suggested path segment — canonical PascalCased per hyphen-part, hyphens preserved (e.g. "Apple-Pay")
4187
4424
  */
4188
4425
  suggestedSegment: string;
4189
4426
  /**
4190
4427
  * Logo URL
4191
4428
  */
4192
4429
  logoUrl: string | null;
4430
+ /**
4431
+ * ISO 3166-1 alpha-2 (UPPERCASE); null = global platform
4432
+ */
4433
+ countryCode: string | null;
4434
+ /**
4435
+ * Region-aware category (institution vocab, e.g. DigitalWallet/Bank). null = no region-aware suggestion; fall back to type.
4436
+ */
4437
+ category: string | null;
4193
4438
  /**
4194
4439
  * Whether user has accounts using this platform
4195
4440
  */
@@ -4198,7 +4443,7 @@ type PlatformListItemDto = {
4198
4443
  /**
4199
4444
  * Platform type
4200
4445
  */
4201
- type type3 = 'BANK' | 'BROKERAGE' | 'CRYPTO_EXCHANGE' | 'PAYMENT' | 'INVESTMENT' | 'INSURANCE' | 'OTHER';
4446
+ type type4 = 'BANK' | 'BROKERAGE' | 'CRYPTO_EXCHANGE' | 'PAYMENT' | 'INVESTMENT' | 'INSURANCE' | 'OTHER';
4202
4447
  type PlatformMatchResultDto = {
4203
4448
  /**
4204
4449
  * Global platform ID
@@ -4217,13 +4462,21 @@ type PlatformMatchResultDto = {
4217
4462
  */
4218
4463
  type: 'BANK' | 'BROKERAGE' | 'CRYPTO_EXCHANGE' | 'PAYMENT' | 'INVESTMENT' | 'INSURANCE' | 'OTHER';
4219
4464
  /**
4220
- * Suggested path segment — canonical, already in ACCOUNT_RE format
4465
+ * Suggested path segment — canonical PascalCased per hyphen-part, hyphens preserved (e.g. "Apple-Pay")
4221
4466
  */
4222
4467
  suggestedSegment: string;
4223
4468
  /**
4224
4469
  * Logo URL
4225
4470
  */
4226
4471
  logoUrl: string | null;
4472
+ /**
4473
+ * ISO 3166-1 alpha-2 (UPPERCASE); null = global platform
4474
+ */
4475
+ countryCode: string | null;
4476
+ /**
4477
+ * Region-aware category (institution vocab, e.g. DigitalWallet/Bank). null = no region-aware suggestion; fall back to type.
4478
+ */
4479
+ category: string | null;
4227
4480
  /**
4228
4481
  * How this row matched: 'exact' > 'prefix' > 'substring'
4229
4482
  */
@@ -4255,6 +4508,46 @@ type PlatformMatchResponseDto = {
4255
4508
  * Overall match quality — top row's tier, or 'none' when no hits
4256
4509
  */
4257
4510
  type matchType2 = 'none' | 'exact' | 'prefix' | 'substring';
4511
+ type PlatformStandardsPlatformDto = {
4512
+ /**
4513
+ * Global platform ID
4514
+ */
4515
+ id: string;
4516
+ /**
4517
+ * Platform name (e.g., "ICBC")
4518
+ */
4519
+ name: string;
4520
+ /**
4521
+ * Canonical identifier in ACCOUNT_RE format (e.g., "icbc")
4522
+ */
4523
+ canonical: string;
4524
+ /**
4525
+ * Suggested path segment — canonical PascalCased per hyphen-part, hyphens preserved (e.g. "Apple-Pay")
4526
+ */
4527
+ suggestedSegment: string;
4528
+ /**
4529
+ * Platform type
4530
+ */
4531
+ type: 'BANK' | 'BROKERAGE' | 'CRYPTO_EXCHANGE' | 'PAYMENT' | 'INVESTMENT' | 'INSURANCE' | 'OTHER';
4532
+ /**
4533
+ * Region-aware category (institution vocab, e.g. DigitalWallet/Bank) resolved against the final region. null = no region-aware suggestion; fall back to type.
4534
+ */
4535
+ category: string | null;
4536
+ };
4537
+ type PlatformStandardsResponseDto = {
4538
+ /**
4539
+ * The selected platform (institution lock source)
4540
+ */
4541
+ platform: PlatformStandardsPlatformDto;
4542
+ /**
4543
+ * Resolved template region (ISO 3166-1 alpha-2, UPPERCASE): the platform's own countryCode when set, else the region query param. For regions without a regional template file the template list falls back to the universal-only catalog while region still echoes the code.
4544
+ */
4545
+ region: string;
4546
+ /**
4547
+ * Candidate account-standard templates of the resolved region (groupable by productCategory client-side)
4548
+ */
4549
+ templates: Array<AccountStandardResponseDto>;
4550
+ };
4258
4551
  type CreatePlatformDto = {
4259
4552
  /**
4260
4553
  * Platform name
@@ -4405,7 +4698,7 @@ type AccountItemDto = {
4405
4698
  */
4406
4699
  name: string;
4407
4700
  /**
4408
- * Display name (last part of account path)
4701
+ * Display name: user-set name if provided (#762), else last part of account path
4409
4702
  */
4410
4703
  displayName: string;
4411
4704
  /**
@@ -4431,11 +4724,11 @@ type PlatformGroupDto = {
4431
4724
  */
4432
4725
  platformName: string;
4433
4726
  /**
4434
- * Accounts within this platform
4727
+ * Accounts within this platform (Assets and Liabilities rows, #696)
4435
4728
  */
4436
4729
  accounts: Array<AccountItemDto>;
4437
4730
  /**
4438
- * FX-converted total balance in base currency
4731
+ * FX-converted total balance in base currency (nets Assets + Liabilities rows; can be negative)
4439
4732
  */
4440
4733
  totalBalance: string;
4441
4734
  /**
@@ -4447,7 +4740,7 @@ type PlatformGroupDto = {
4447
4740
  */
4448
4741
  convertedBalance?: string;
4449
4742
  /**
4450
- * Share of the grand converted total (0-100); 0 when grand total is 0
4743
+ * Share of the converted asset-side grand total (0-100); liability balances are excluded from the basis; 0 when grand total is 0 (#696)
4451
4744
  */
4452
4745
  sharePct: number;
4453
4746
  };
@@ -4471,7 +4764,7 @@ type AccountExchangeRateWarningDto = {
4471
4764
  };
4472
4765
  type AccountsSummaryDto = {
4473
4766
  /**
4474
- * Total number of accounts
4767
+ * Total number of accounts (balance sheet: Assets + Liabilities, #696)
4475
4768
  */
4476
4769
  totalAccounts: number;
4477
4770
  /**
@@ -4507,7 +4800,7 @@ type AccountItemWithAssetClassDto = {
4507
4800
  */
4508
4801
  name: string;
4509
4802
  /**
4510
- * Display name (last part of account path)
4803
+ * Display name: user-set name if provided (#762), else last part of account path
4511
4804
  */
4512
4805
  displayName: string;
4513
4806
  /**
@@ -4793,9 +5086,7 @@ type MonetaryDto = {
4793
5086
  /**
4794
5087
  * Converted to user base currency (Decimal string)
4795
5088
  */
4796
- baseCcyEquivalent?: {
4797
- [key: string]: unknown;
4798
- } | null;
5089
+ baseCcyEquivalent?: string | null;
4799
5090
  };
4800
5091
  type CurrentPriceDto = {
4801
5092
  /**
@@ -4843,15 +5134,11 @@ type HoldingPnlRowDto = {
4843
5134
  /**
4844
5135
  * Account settlement currency (ISO 4217), from cost currency
4845
5136
  */
4846
- accountCcy?: {
4847
- [key: string]: unknown;
4848
- } | null;
5137
+ accountCcy?: string | null;
4849
5138
  /**
4850
5139
  * Broker type derived from Platform.type
4851
5140
  */
4852
- brokerType?: {
4853
- [key: string]: unknown;
4854
- } | null;
5141
+ brokerType?: string | null;
4855
5142
  /**
4856
5143
  * Commodity symbol
4857
5144
  */
@@ -4861,9 +5148,7 @@ type HoldingPnlRowDto = {
4861
5148
  */
4862
5149
  chartToken: 'equity' | 'fund' | 'bond' | 'cash' | 'other';
4863
5150
  assetClass: string;
4864
- assetSubClass?: {
4865
- [key: string]: unknown;
4866
- } | null;
5151
+ assetSubClass?: string | null;
4867
5152
  /**
4868
5153
  * Net held units (Decimal string)
4869
5154
  */
@@ -4887,15 +5172,11 @@ type HoldingPnlRowDto = {
4887
5172
  /**
4888
5173
  * Unrealized P&L in base currency (Decimal string); null when any FX/price missing
4889
5174
  */
4890
- unrealizedPnlBase?: {
4891
- [key: string]: unknown;
4892
- } | null;
5175
+ unrealizedPnlBase?: string | null;
4893
5176
  /**
4894
5177
  * Unrealized P&L % (Decimal string)
4895
5178
  */
4896
- unrealizedPnlPct?: {
4897
- [key: string]: unknown;
4898
- } | null;
5179
+ unrealizedPnlPct?: string | null;
4899
5180
  /**
4900
5181
  * Historical FX rate applied to cost basis
4901
5182
  */
@@ -4907,9 +5188,7 @@ type HoldingPnlRowDto = {
4907
5188
  /**
4908
5189
  * Share of invested assets % (Decimal string); only for invested chartTokens
4909
5190
  */
4910
- pctOfInvestedAssets?: {
4911
- [key: string]: unknown;
4912
- } | null;
5191
+ pctOfInvestedAssets?: string | null;
4913
5192
  /**
4914
5193
  * 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
4915
5194
  */
@@ -4924,20 +5203,14 @@ type HoldingPnlWarningDto = {
4924
5203
  * Warning type
4925
5204
  */
4926
5205
  type: 'MISSING_COST_FX_RATE' | 'MISSING_MARKET_FX_RATE' | 'MISSING_SALE_PRICE' | 'MISSING_REALIZED_FX_RATE' | 'OVERSOLD_LOTS' | 'NO_PRICE' | 'MIXED_COST_CURRENCY';
4927
- symbol?: {
4928
- [key: string]: unknown;
4929
- } | null;
4930
- accountId?: {
4931
- [key: string]: unknown;
4932
- } | null;
4933
- currency?: {
4934
- [key: string]: unknown;
4935
- } | null;
5206
+ symbol?: string | null;
5207
+ accountId?: string | null;
5208
+ currency?: string | null;
4936
5209
  };
4937
5210
  /**
4938
5211
  * Warning type
4939
5212
  */
4940
- type type4 = 'MISSING_COST_FX_RATE' | 'MISSING_MARKET_FX_RATE' | 'MISSING_SALE_PRICE' | 'MISSING_REALIZED_FX_RATE' | 'OVERSOLD_LOTS' | 'NO_PRICE' | 'MIXED_COST_CURRENCY';
5213
+ type type5 = 'MISSING_COST_FX_RATE' | 'MISSING_MARKET_FX_RATE' | 'MISSING_SALE_PRICE' | 'MISSING_REALIZED_FX_RATE' | 'OVERSOLD_LOTS' | 'NO_PRICE' | 'MIXED_COST_CURRENCY';
4941
5214
  type HoldingPnlResponseDto = {
4942
5215
  asOfDate: string;
4943
5216
  baseCurrency: string;
@@ -4954,141 +5227,172 @@ type HoldingPnlResponseDto = {
4954
5227
  type method = 'average' | 'FIFO';
4955
5228
  type AnonymousLoginDto = {
4956
5229
  /**
4957
- * Access token for anonymous login
5230
+ * Access token for anonymous login
5231
+ */
5232
+ accessToken: string;
5233
+ };
5234
+ type AnonymousLoginResponseDto = {
5235
+ /**
5236
+ * JWT auth token
5237
+ */
5238
+ authToken: string;
5239
+ };
5240
+ type ParserContributionMetaDto = {
5241
+ /**
5242
+ * Institution slug (lowercase kebab-case)
5243
+ */
5244
+ institution: string;
5245
+ region: 'cn' | 'us' | 'de' | 'fr' | 'gb' | 'hk' | 'jp' | 'sg' | 'au' | 'ca' | 'other';
5246
+ accountType: 'checking' | 'savings' | 'credit' | 'debit' | 'investment';
5247
+ format: 'csv' | 'xlsx' | 'pdf' | 'ofx' | 'qif';
5248
+ institutionDisplayName?: string;
5249
+ encoding?: string;
5250
+ /**
5251
+ * CSV delimiter character: ",", ";", "\t" or "|"
5252
+ */
5253
+ delimiter?: string;
5254
+ /**
5255
+ * Header row count; the client omits the field when it is 1
5256
+ */
5257
+ headerRows?: number;
5258
+ notes?: string;
5259
+ };
5260
+ type region = 'cn' | 'us' | 'de' | 'fr' | 'gb' | 'hk' | 'jp' | 'sg' | 'au' | 'ca' | 'other';
5261
+ type accountType = 'checking' | 'savings' | 'credit' | 'debit' | 'investment';
5262
+ type format = 'csv' | 'xlsx' | 'pdf' | 'ofx' | 'qif';
5263
+ type ParserContributionSamplesDto = {
5264
+ /**
5265
+ * Client-sanitized sample rows (key = column name, value = cell)
5266
+ */
5267
+ rows: Array<{
5268
+ [key: string]: unknown;
5269
+ }>;
5270
+ rawHeaders?: Array<string>;
5271
+ };
5272
+ type FieldHintDto = {
5273
+ columnName: string;
5274
+ /**
5275
+ * Date format, e.g. yyyy-MM-dd HH:mm
4958
5276
  */
4959
- accessToken: string;
5277
+ format?: string;
5278
+ signConvention?: 'negative-expense' | 'positive-expense' | 'separate-columns';
5279
+ creditColumn?: string;
5280
+ debitColumn?: string;
4960
5281
  };
4961
- type AnonymousLoginResponseDto = {
5282
+ type signConvention = 'negative-expense' | 'positive-expense' | 'separate-columns';
5283
+ type ParserContributionFieldHintsDto = {
5284
+ date: FieldHintDto;
5285
+ amount: FieldHintDto;
5286
+ description?: FieldHintDto;
5287
+ balance?: FieldHintDto;
5288
+ payee?: FieldHintDto;
5289
+ reference?: FieldHintDto;
5290
+ category?: FieldHintDto;
5291
+ };
5292
+ type ExpectedTransactionDto = {
5293
+ date: string;
5294
+ amount: number;
5295
+ description: string;
5296
+ payee?: string;
5297
+ category?: string;
5298
+ };
5299
+ type ParserContributionExamplesDto = {
5300
+ expectedTransactions: Array<ExpectedTransactionDto>;
5301
+ };
5302
+ type ParserContributionRequestDto = {
5303
+ meta: ParserContributionMetaDto;
5304
+ samples: ParserContributionSamplesDto;
5305
+ fieldHints: ParserContributionFieldHintsDto;
4962
5306
  /**
4963
- * JWT auth token
5307
+ * Omitted entirely by the client when empty
4964
5308
  */
4965
- authToken: string;
5309
+ examples?: ParserContributionExamplesDto;
5310
+ };
5311
+ type ParserContributionRelayResponseDto = {
5312
+ issueUrl: string;
5313
+ issueNumber: number;
4966
5314
  };
4967
5315
  type SymbolSearchResultDto = {
4968
5316
  symbol: string;
4969
- name?: {
4970
- [key: string]: unknown;
4971
- } | null;
4972
- exchange?: {
4973
- [key: string]: unknown;
4974
- } | null;
5317
+ name?: string | null;
5318
+ exchange?: string | null;
4975
5319
  /**
4976
5320
  * OpenBB asset_type (e.g. stock, etf)
4977
5321
  */
4978
- assetType?: {
4979
- [key: string]: unknown;
4980
- } | null;
5322
+ assetType?: string | null;
4981
5323
  /**
4982
5324
  * IGN asset class (region.types.ts ASSET_CLASSES)
4983
5325
  */
4984
- assetClass?: {
4985
- [key: string]: unknown;
4986
- } | null;
5326
+ assetClass?: string | null;
4987
5327
  /**
4988
5328
  * IGN asset sub-class (region.types.ts ASSET_SUB_CLASSES)
4989
5329
  */
4990
- assetSubClass?: {
4991
- [key: string]: unknown;
4992
- } | null;
5330
+ assetSubClass?: string | null;
4993
5331
  /**
4994
5332
  * Trading currency (extra_data or inferred from exchange)
4995
5333
  */
4996
- currency?: {
4997
- [key: string]: unknown;
4998
- } | null;
5334
+ currency?: string | null;
4999
5335
  };
5000
5336
  type SymbolQuoteDto = {
5001
5337
  symbol?: string;
5002
- name?: {
5003
- [key: string]: unknown;
5004
- } | null;
5005
- exchange?: {
5006
- [key: string]: unknown;
5007
- } | null;
5338
+ name?: string | null;
5339
+ exchange?: string | null;
5008
5340
  /**
5009
5341
  * OpenBB asset_type
5010
5342
  */
5011
- assetType?: {
5012
- [key: string]: unknown;
5013
- } | null;
5343
+ assetType?: string | null;
5014
5344
  /**
5015
5345
  * IGN asset class
5016
5346
  */
5017
- assetClass?: {
5018
- [key: string]: unknown;
5019
- } | null;
5347
+ assetClass?: string | null;
5020
5348
  /**
5021
5349
  * IGN asset sub-class
5022
5350
  */
5023
- assetSubClass?: {
5024
- [key: string]: unknown;
5025
- } | null;
5351
+ assetSubClass?: string | null;
5026
5352
  /**
5027
5353
  * Trading currency (extra_data or inferred from exchange)
5028
5354
  */
5029
- currency?: {
5030
- [key: string]: unknown;
5031
- } | null;
5355
+ currency?: string | null;
5032
5356
  /**
5033
5357
  * Latest price (Decimal string)
5034
5358
  */
5035
- price?: {
5036
- [key: string]: unknown;
5037
- } | null;
5359
+ price?: string | null;
5038
5360
  /**
5039
5361
  * Date the price was observed (ISO yyyy-MM-dd)
5040
5362
  */
5041
- priceDate?: {
5042
- [key: string]: unknown;
5043
- } | null;
5363
+ priceDate?: string | null;
5044
5364
  /**
5045
5365
  * Change vs previous close, in percentage points (1.7 == 1.7%). openbb stores change_percent as a normalized decimal; this exposes percentage points for frontend convenience.
5046
5366
  */
5047
- changePercent?: {
5048
- [key: string]: unknown;
5049
- } | null;
5367
+ changePercent?: number | null;
5050
5368
  /**
5051
5369
  * Previous close (Decimal string)
5052
5370
  */
5053
- prevClose?: {
5054
- [key: string]: unknown;
5055
- } | null;
5371
+ prevClose?: string | null;
5056
5372
  /**
5057
5373
  * Day open (Decimal string)
5058
5374
  */
5059
- open?: {
5060
- [key: string]: unknown;
5061
- } | null;
5375
+ open?: string | null;
5062
5376
  /**
5063
5377
  * Day high (Decimal string)
5064
5378
  */
5065
- high?: {
5066
- [key: string]: unknown;
5067
- } | null;
5379
+ high?: string | null;
5068
5380
  /**
5069
5381
  * Day low (Decimal string)
5070
5382
  */
5071
- low?: {
5072
- [key: string]: unknown;
5073
- } | null;
5383
+ low?: string | null;
5074
5384
  /**
5075
5385
  * Day volume (Decimal string)
5076
5386
  */
5077
- volume?: {
5078
- [key: string]: unknown;
5079
- } | null;
5387
+ volume?: string | null;
5080
5388
  /**
5081
5389
  * 52-week high (Decimal string)
5082
5390
  */
5083
- yearHigh?: {
5084
- [key: string]: unknown;
5085
- } | null;
5391
+ yearHigh?: string | null;
5086
5392
  /**
5087
5393
  * 52-week low (Decimal string)
5088
5394
  */
5089
- yearLow?: {
5090
- [key: string]: unknown;
5091
- } | null;
5395
+ yearLow?: string | null;
5092
5396
  };
5093
5397
  type AccountControllerCreateData = {
5094
5398
  /**
@@ -5201,11 +5505,11 @@ type AccountControllerAddOpeningBalanceData = {
5201
5505
  type AccountControllerAddOpeningBalanceResponse = OpeningBalanceResultDto;
5202
5506
  type AccountStandardsControllerGetTemplatesData = {
5203
5507
  /**
5204
- * Region code (cn, us, de)
5508
+ * Region code (any ISO alpha-2; not-yet-open codes return the universal-only catalog)
5205
5509
  */
5206
- region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
5510
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'ar' | 'at' | 'au' | 'az' | 'ba' | 'bb' | 'bd' | 'be' | 'bf' | 'bg' | 'bh' | 'bi' | 'bj' | 'bn' | 'bo' | 'br' | 'bs' | 'bt' | 'bw' | 'by' | 'bz' | 'ca' | 'cd' | 'cf' | 'cg' | 'ch' | 'ci' | 'cl' | 'cm' | 'cn' | 'co' | 'cr' | 'cu' | 'cv' | 'cy' | 'cz' | 'de' | 'dj' | 'dk' | 'dm' | 'do' | 'dz' | 'ec' | 'ee' | 'eg' | 'er' | 'es' | 'et' | 'fj' | 'fm' | 'fr' | 'ga' | 'gb' | 'gd' | 'ge' | 'gh' | 'gm' | 'gn' | 'gq' | 'gr' | 'gt' | 'gw' | 'gy' | 'hk' | 'hn' | 'hr' | 'ht' | 'hu' | 'id' | 'ie' | 'il' | 'in' | 'iq' | 'ir' | 'is' | 'it' | 'jm' | 'jo' | 'jp' | 'ke' | 'kg' | 'kh' | 'ki' | 'km' | 'kn' | 'kr' | 'kw' | 'kz' | 'la' | 'lb' | 'lc' | 'li' | 'lk' | 'lr' | 'ls' | 'lt' | 'lu' | 'lv' | 'ly' | 'ma' | 'mc' | 'md' | 'me' | 'mg' | 'mh' | 'mk' | 'ml' | 'mm' | 'mn' | 'mr' | 'mt' | 'mu' | 'mv' | 'mw' | 'mx' | 'mz' | 'na' | 'ne' | 'ng' | 'ni' | 'nl' | 'no' | 'np' | 'nr' | 'nz' | 'om' | 'pa' | 'pe' | 'pg' | 'ph' | 'pk' | 'pl' | 'ps' | 'pt' | 'pw' | 'py' | 'qa' | 'ro' | 'rs' | 'ru' | 'rw' | 'sa' | 'sb' | 'sc' | 'sd' | 'se' | 'sg' | 'sl' | 'sm' | 'sn' | 'so' | 'sr' | 'st' | 'sv' | 'sy' | 'sz' | 'td' | 'tg' | 'th' | 'tj' | 'tl' | 'tm' | 'tn' | 'to' | 'tr' | 'tt' | 'tv' | 'tw' | 'tz' | 'ua' | 'ug' | 'us' | 'uy' | 'uz' | 'va' | 'vc' | 've' | 'vn' | 'vu' | 'ws' | 'ye' | 'za' | 'zm' | 'zw';
5207
5511
  /**
5208
- * Search term for path or description
5512
+ * Search term for path, description, aliases, or localized display name
5209
5513
  */
5210
5514
  search?: string;
5211
5515
  /**
@@ -5220,16 +5524,16 @@ type AccountStandardsControllerGetTemplateMetadataData = {
5220
5524
  */
5221
5525
  path: string;
5222
5526
  /**
5223
- * Region code for tenant context
5527
+ * Region code for tenant context. Not-yet-open codes degrade to the universal-only catalog (#759)
5224
5528
  */
5225
- region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
5529
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'ar' | 'at' | 'au' | 'az' | 'ba' | 'bb' | 'bd' | 'be' | 'bf' | 'bg' | 'bh' | 'bi' | 'bj' | 'bn' | 'bo' | 'br' | 'bs' | 'bt' | 'bw' | 'by' | 'bz' | 'ca' | 'cd' | 'cf' | 'cg' | 'ch' | 'ci' | 'cl' | 'cm' | 'cn' | 'co' | 'cr' | 'cu' | 'cv' | 'cy' | 'cz' | 'de' | 'dj' | 'dk' | 'dm' | 'do' | 'dz' | 'ec' | 'ee' | 'eg' | 'er' | 'es' | 'et' | 'fj' | 'fm' | 'fr' | 'ga' | 'gb' | 'gd' | 'ge' | 'gh' | 'gm' | 'gn' | 'gq' | 'gr' | 'gt' | 'gw' | 'gy' | 'hk' | 'hn' | 'hr' | 'ht' | 'hu' | 'id' | 'ie' | 'il' | 'in' | 'iq' | 'ir' | 'is' | 'it' | 'jm' | 'jo' | 'jp' | 'ke' | 'kg' | 'kh' | 'ki' | 'km' | 'kn' | 'kr' | 'kw' | 'kz' | 'la' | 'lb' | 'lc' | 'li' | 'lk' | 'lr' | 'ls' | 'lt' | 'lu' | 'lv' | 'ly' | 'ma' | 'mc' | 'md' | 'me' | 'mg' | 'mh' | 'mk' | 'ml' | 'mm' | 'mn' | 'mr' | 'mt' | 'mu' | 'mv' | 'mw' | 'mx' | 'mz' | 'na' | 'ne' | 'ng' | 'ni' | 'nl' | 'no' | 'np' | 'nr' | 'nz' | 'om' | 'pa' | 'pe' | 'pg' | 'ph' | 'pk' | 'pl' | 'ps' | 'pt' | 'pw' | 'py' | 'qa' | 'ro' | 'rs' | 'ru' | 'rw' | 'sa' | 'sb' | 'sc' | 'sd' | 'se' | 'sg' | 'sl' | 'sm' | 'sn' | 'so' | 'sr' | 'st' | 'sv' | 'sy' | 'sz' | 'td' | 'tg' | 'th' | 'tj' | 'tl' | 'tm' | 'tn' | 'to' | 'tr' | 'tt' | 'tv' | 'tw' | 'tz' | 'ua' | 'ug' | 'us' | 'uy' | 'uz' | 'va' | 'vc' | 've' | 'vn' | 'vu' | 'ws' | 'ye' | 'za' | 'zm' | 'zw';
5226
5530
  };
5227
5531
  type AccountStandardsControllerGetTemplateMetadataResponse = TemplateMetadataResponseDto;
5228
5532
  type AccountStandardsControllerGetRegionsData = {
5229
5533
  /**
5230
- * Region code for tenant context
5534
+ * Region code for tenant context. Not-yet-open codes degrade to the universal-only catalog (#759)
5231
5535
  */
5232
- region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
5536
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'ar' | 'at' | 'au' | 'az' | 'ba' | 'bb' | 'bd' | 'be' | 'bf' | 'bg' | 'bh' | 'bi' | 'bj' | 'bn' | 'bo' | 'br' | 'bs' | 'bt' | 'bw' | 'by' | 'bz' | 'ca' | 'cd' | 'cf' | 'cg' | 'ch' | 'ci' | 'cl' | 'cm' | 'cn' | 'co' | 'cr' | 'cu' | 'cv' | 'cy' | 'cz' | 'de' | 'dj' | 'dk' | 'dm' | 'do' | 'dz' | 'ec' | 'ee' | 'eg' | 'er' | 'es' | 'et' | 'fj' | 'fm' | 'fr' | 'ga' | 'gb' | 'gd' | 'ge' | 'gh' | 'gm' | 'gn' | 'gq' | 'gr' | 'gt' | 'gw' | 'gy' | 'hk' | 'hn' | 'hr' | 'ht' | 'hu' | 'id' | 'ie' | 'il' | 'in' | 'iq' | 'ir' | 'is' | 'it' | 'jm' | 'jo' | 'jp' | 'ke' | 'kg' | 'kh' | 'ki' | 'km' | 'kn' | 'kr' | 'kw' | 'kz' | 'la' | 'lb' | 'lc' | 'li' | 'lk' | 'lr' | 'ls' | 'lt' | 'lu' | 'lv' | 'ly' | 'ma' | 'mc' | 'md' | 'me' | 'mg' | 'mh' | 'mk' | 'ml' | 'mm' | 'mn' | 'mr' | 'mt' | 'mu' | 'mv' | 'mw' | 'mx' | 'mz' | 'na' | 'ne' | 'ng' | 'ni' | 'nl' | 'no' | 'np' | 'nr' | 'nz' | 'om' | 'pa' | 'pe' | 'pg' | 'ph' | 'pk' | 'pl' | 'ps' | 'pt' | 'pw' | 'py' | 'qa' | 'ro' | 'rs' | 'ru' | 'rw' | 'sa' | 'sb' | 'sc' | 'sd' | 'se' | 'sg' | 'sl' | 'sm' | 'sn' | 'so' | 'sr' | 'st' | 'sv' | 'sy' | 'sz' | 'td' | 'tg' | 'th' | 'tj' | 'tl' | 'tm' | 'tn' | 'to' | 'tr' | 'tt' | 'tv' | 'tw' | 'tz' | 'ua' | 'ug' | 'us' | 'uy' | 'uz' | 'va' | 'vc' | 've' | 'vn' | 'vu' | 'ws' | 'ye' | 'za' | 'zm' | 'zw';
5233
5537
  };
5234
5538
  type AccountStandardsControllerGetRegionsResponse = RegionsMetadataResponseDto;
5235
5539
  type TransactionControllerCreateData = {
@@ -5249,7 +5553,7 @@ type TransactionControllerListData = {
5249
5553
  */
5250
5554
  accountId?: string;
5251
5555
  /**
5252
- * Filter by ADR-0075 functional category (Group segment); matches any posting to an Expenses/Income account whose derived Group segment equals this value
5556
+ * Filter by ADR-0075 functional category (Group segment); matches any posting to an account whose derived Group segment equals this value. Must be accompanied by flow (ADR-0126).
5253
5557
  */
5254
5558
  category?: string;
5255
5559
  /**
@@ -5260,6 +5564,10 @@ type TransactionControllerListData = {
5260
5564
  * Filter by end date (inclusive), format: YYYY-MM-DD
5261
5565
  */
5262
5566
  dateTo?: string;
5567
+ /**
5568
+ * Required when category is present (400 otherwise) and vice versa (ADR-0126). Restricts the category account set to the flow root (income → Income:, expense → Expenses:) and drives the per-leg sign normalization of row viewpointAmount and the summary. OpenAPI cannot express conditional requiredness — the pairing is enforced at runtime.
5569
+ */
5570
+ flow?: 'income' | 'expense';
5263
5571
  /**
5264
5572
  * Number of items per page (1-100, default: 20)
5265
5573
  */
@@ -5277,9 +5585,9 @@ type TransactionControllerListData = {
5277
5585
  */
5278
5586
  search?: string;
5279
5587
  /**
5280
- * Filter by transaction status
5588
+ * Filter by transaction status: single value, comma-separated multi-value (e.g. VOIDED,SUPERSEDED), or ALL to include audit rows. Defaults to ACTIVE-only (ADR-0128; previously unfiltered — breaking change).
5281
5589
  */
5282
- status?: 'ACTIVE' | 'VOIDED' | 'SUPERSEDED';
5590
+ status?: 'ACTIVE' | 'VOIDED' | 'SUPERSEDED' | 'ALL';
5283
5591
  };
5284
5592
  type TransactionControllerListResponse = TransactionListResponseDto;
5285
5593
  type TransactionControllerCreateBatchData = {
@@ -5596,7 +5904,7 @@ type PayeeProfileAdminControllerUnverifyData = {
5596
5904
  */
5597
5905
  id: string;
5598
5906
  };
5599
- type PayeeProfileAdminControllerUnverifyResponse = PayeeProfileResponseDto;
5907
+ type PayeeProfileAdminControllerUnverifyResponse = void;
5600
5908
  type CommodityControllerCreateData = {
5601
5909
  /**
5602
5910
  * Region code for tenant context
@@ -5672,6 +5980,55 @@ type CommodityControllerBulkCreateData = {
5672
5980
  region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
5673
5981
  };
5674
5982
  type CommodityControllerBulkCreateResponse = Array<CommodityResponseDto>;
5983
+ type ReportingControllerGetPortfolioTrendsData = {
5984
+ /**
5985
+ * Data granularity
5986
+ */
5987
+ granularity?: 'day' | 'week' | 'month';
5988
+ /**
5989
+ * Time period
5990
+ */
5991
+ period?: '1m' | '3m' | '6m' | '1y';
5992
+ /**
5993
+ * Region code for tenant context
5994
+ */
5995
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
5996
+ };
5997
+ type ReportingControllerGetPortfolioTrendsResponse = PortfolioTrendsResponseDto;
5998
+ type ReportingControllerGetCashFlowTrendsData = {
5999
+ /**
6000
+ * Data granularity (accepted for API symmetry; v1 returns month buckets)
6001
+ */
6002
+ granularity?: 'day' | 'week' | 'month';
6003
+ /**
6004
+ * Time period
6005
+ */
6006
+ period?: '1m' | '3m' | '6m' | '1y';
6007
+ /**
6008
+ * Region code for tenant context
6009
+ */
6010
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
6011
+ };
6012
+ type ReportingControllerGetCashFlowTrendsResponse = CashFlowTrendsResponseDto;
6013
+ type ReportingControllerGenerateSnapshotData = {
6014
+ /**
6015
+ * Region code for tenant context
6016
+ */
6017
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
6018
+ /**
6019
+ * Optional date (defaults to today)
6020
+ */
6021
+ requestBody: GenerateSnapshotBody;
6022
+ };
6023
+ type ReportingControllerGenerateSnapshotResponse = GenerateSnapshotResponse;
6024
+ type ReportingControllerBackfillSnapshotsData = {
6025
+ /**
6026
+ * Region code for tenant context
6027
+ */
6028
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
6029
+ requestBody: BackfillSnapshotsBody;
6030
+ };
6031
+ type ReportingControllerBackfillSnapshotsResponse = BackfillSnapshotsResponse;
5675
6032
  type PriceControllerCreateData = {
5676
6033
  /**
5677
6034
  * Region code for tenant context
@@ -5757,6 +6114,71 @@ type PriceControllerBulkCreateData = {
5757
6114
  requestBody: Array<string>;
5758
6115
  };
5759
6116
  type PriceControllerBulkCreateResponse = Array<PriceResponseDto>;
6117
+ type UserControllerDeleteOwnUserData = {
6118
+ requestBody: DeleteOwnUserDto;
6119
+ };
6120
+ type UserControllerDeleteOwnUserResponse = void;
6121
+ type UserControllerGetUserData = {
6122
+ acceptLanguage: string;
6123
+ };
6124
+ type UserControllerGetUserResponse = UserResponseDto;
6125
+ type UserControllerSignupUserData = {
6126
+ requestBody: SignupDto;
6127
+ };
6128
+ type UserControllerSignupUserResponse = SignupResponseDto;
6129
+ type UserControllerDeleteUserData = {
6130
+ /**
6131
+ * User ID to delete
6132
+ */
6133
+ id: string;
6134
+ };
6135
+ type UserControllerDeleteUserResponse = void;
6136
+ type UserControllerGetUserInfoData = {
6137
+ /**
6138
+ * User ID
6139
+ */
6140
+ id: string;
6141
+ };
6142
+ type UserControllerGetUserInfoResponse = unknown;
6143
+ type UserControllerUpdateUserSettingData = {
6144
+ requestBody: UpdateUserSettingDto;
6145
+ };
6146
+ type UserControllerUpdateUserSettingResponse = unknown;
6147
+ type UserControllerGetAllUserSettingsByPageData = {
6148
+ /**
6149
+ * Page number
6150
+ */
6151
+ pageNo: number;
6152
+ /**
6153
+ * Page size
6154
+ */
6155
+ pageSize: number;
6156
+ };
6157
+ type UserControllerGetAllUserSettingsByPageResponse = unknown;
6158
+ type UserControllerGetAssetLiabilitySummaryResponse = unknown;
6159
+ type PropertyControllerGetAllResponse = unknown;
6160
+ type PropertyControllerGetByKeyData = {
6161
+ /**
6162
+ * Property key
6163
+ */
6164
+ key: string;
6165
+ };
6166
+ type PropertyControllerGetByKeyResponse = unknown;
6167
+ type PropertyControllerUpdateData = {
6168
+ /**
6169
+ * Property key
6170
+ */
6171
+ key: string;
6172
+ requestBody: UpdatePropertyDto;
6173
+ };
6174
+ type PropertyControllerUpdateResponse = unknown;
6175
+ type PropertyControllerDeleteData = {
6176
+ /**
6177
+ * Property key
6178
+ */
6179
+ key: string;
6180
+ };
6181
+ type PropertyControllerDeleteResponse = void;
5760
6182
  type RecurringRuleControllerCreateData = {
5761
6183
  /**
5762
6184
  * Region code for tenant context
@@ -5861,209 +6283,95 @@ type ExpectedTransactionControllerFindAllData = {
5861
6283
  /**
5862
6284
  * Filter by date range end (YYYY-MM-DD)
5863
6285
  */
5864
- toDate?: string;
5865
- };
5866
- type ExpectedTransactionControllerFindAllResponse = ExpectedTransactionListResponseDto;
5867
- type ExpectedTransactionControllerFindOverdueData = {
5868
- /**
5869
- * Region code for tenant context
5870
- */
5871
- region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
5872
- };
5873
- type ExpectedTransactionControllerFindOverdueResponse = ExpectedTransactionListResponseDto;
5874
- type ExpectedTransactionControllerFindOneData = {
5875
- /**
5876
- * Expected transaction ID
5877
- */
5878
- id: string;
5879
- /**
5880
- * Region code for tenant context
5881
- */
5882
- region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
5883
- };
5884
- type ExpectedTransactionControllerFindOneResponse = ExpectedTransactionResponseDto;
5885
- type ExpectedTransactionControllerSkipData = {
5886
- /**
5887
- * Expected transaction ID
5888
- */
5889
- id: string;
5890
- /**
5891
- * Region code for tenant context
5892
- */
5893
- region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
5894
- };
5895
- type ExpectedTransactionControllerSkipResponse = ExpectedTransactionResponseDto;
5896
- type ExpectedTransactionControllerUndoSkipData = {
5897
- /**
5898
- * Expected transaction ID
5899
- */
5900
- id: string;
5901
- /**
5902
- * Region code for tenant context
5903
- */
5904
- region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
5905
- };
5906
- type ExpectedTransactionControllerUndoSkipResponse = ExpectedTransactionResponseDto;
5907
- type ExpectedTransactionControllerConfirmMatchData = {
5908
- /**
5909
- * Expected transaction ID
5910
- */
5911
- id: string;
5912
- /**
5913
- * Region code for tenant context
5914
- */
5915
- region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
5916
- requestBody: ConfirmMatchDto;
5917
- };
5918
- type ExpectedTransactionControllerConfirmMatchResponse = unknown;
5919
- type ExpectedTransactionControllerUnmatchData = {
5920
- /**
5921
- * Expected transaction ID
5922
- */
5923
- id: string;
5924
- /**
5925
- * Region code for tenant context
5926
- */
5927
- region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
5928
- };
5929
- type ExpectedTransactionControllerUnmatchResponse = unknown;
5930
- type ExpectedTransactionControllerEnterNowData = {
5931
- /**
5932
- * Expected transaction ID
5933
- */
5934
- id: string;
5935
- /**
5936
- * Region code for tenant context
5937
- */
5938
- region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
5939
- requestBody: EnterNowDto;
5940
- };
5941
- type ExpectedTransactionControllerEnterNowResponse = unknown;
5942
- type ForecastControllerGetForecastData = {
5943
- /**
5944
- * Number of months to forecast (1-12, default 3)
5945
- */
5946
- months?: number;
5947
- /**
5948
- * Region code for tenant context
5949
- */
5950
- region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
5951
- };
5952
- type ForecastControllerGetForecastResponse = ForecastResponseDto;
5953
- type ReportingControllerGetPortfolioTrendsData = {
5954
- /**
5955
- * Data granularity
5956
- */
5957
- granularity?: 'day' | 'week' | 'month';
5958
- /**
5959
- * Time period
5960
- */
5961
- period?: '1m' | '3m' | '6m' | '1y';
6286
+ toDate?: string;
6287
+ };
6288
+ type ExpectedTransactionControllerFindAllResponse = ExpectedTransactionListResponseDto;
6289
+ type ExpectedTransactionControllerFindOverdueData = {
5962
6290
  /**
5963
6291
  * Region code for tenant context
5964
6292
  */
5965
6293
  region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
5966
6294
  };
5967
- type ReportingControllerGetPortfolioTrendsResponse = PortfolioTrendsResponseDto;
5968
- type ReportingControllerGetCashFlowTrendsData = {
5969
- /**
5970
- * Data granularity (accepted for API symmetry; v1 returns month buckets)
5971
- */
5972
- granularity?: 'day' | 'week' | 'month';
6295
+ type ExpectedTransactionControllerFindOverdueResponse = ExpectedTransactionListResponseDto;
6296
+ type ExpectedTransactionControllerFindOneData = {
5973
6297
  /**
5974
- * Time period
6298
+ * Expected transaction ID
5975
6299
  */
5976
- period?: '1m' | '3m' | '6m' | '1y';
6300
+ id: string;
5977
6301
  /**
5978
6302
  * Region code for tenant context
5979
6303
  */
5980
6304
  region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
5981
6305
  };
5982
- type ReportingControllerGetCashFlowTrendsResponse = CashFlowTrendsResponseDto;
5983
- type ReportingControllerGenerateSnapshotData = {
6306
+ type ExpectedTransactionControllerFindOneResponse = ExpectedTransactionResponseDto;
6307
+ type ExpectedTransactionControllerSkipData = {
6308
+ /**
6309
+ * Expected transaction ID
6310
+ */
6311
+ id: string;
5984
6312
  /**
5985
6313
  * Region code for tenant context
5986
6314
  */
5987
6315
  region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
6316
+ };
6317
+ type ExpectedTransactionControllerSkipResponse = ExpectedTransactionResponseDto;
6318
+ type ExpectedTransactionControllerUndoSkipData = {
5988
6319
  /**
5989
- * Optional date (defaults to today)
6320
+ * Expected transaction ID
5990
6321
  */
5991
- requestBody: GenerateSnapshotBody;
5992
- };
5993
- type ReportingControllerGenerateSnapshotResponse = GenerateSnapshotResponse;
5994
- type ReportingControllerBackfillSnapshotsData = {
6322
+ id: string;
5995
6323
  /**
5996
6324
  * Region code for tenant context
5997
6325
  */
5998
6326
  region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
5999
- requestBody: BackfillSnapshotsBody;
6000
- };
6001
- type ReportingControllerBackfillSnapshotsResponse = BackfillSnapshotsResponse;
6002
- type UserControllerDeleteOwnUserData = {
6003
- requestBody: DeleteOwnUserDto;
6004
- };
6005
- type UserControllerDeleteOwnUserResponse = void;
6006
- type UserControllerGetUserData = {
6007
- acceptLanguage: string;
6008
- };
6009
- type UserControllerGetUserResponse = unknown;
6010
- type UserControllerSignupUserData = {
6011
- requestBody: SignupDto;
6012
6327
  };
6013
- type UserControllerSignupUserResponse = SignupResponseDto;
6014
- type UserControllerDeleteUserData = {
6328
+ type ExpectedTransactionControllerUndoSkipResponse = void;
6329
+ type ExpectedTransactionControllerConfirmMatchData = {
6015
6330
  /**
6016
- * User ID to delete
6331
+ * Expected transaction ID
6017
6332
  */
6018
6333
  id: string;
6019
- };
6020
- type UserControllerDeleteUserResponse = void;
6021
- type UserControllerGetUserInfoData = {
6022
6334
  /**
6023
- * User ID
6335
+ * Region code for tenant context
6024
6336
  */
6025
- id: string;
6026
- };
6027
- type UserControllerGetUserInfoResponse = unknown;
6028
- type UserControllerUpdateUserSettingData = {
6029
- requestBody: UpdateUserSettingDto;
6337
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
6338
+ requestBody: ConfirmMatchDto;
6030
6339
  };
6031
- type UserControllerUpdateUserSettingResponse = unknown;
6032
- type UserControllerGetAllUserSettingsByPageData = {
6340
+ type ExpectedTransactionControllerConfirmMatchResponse = unknown;
6341
+ type ExpectedTransactionControllerUnmatchData = {
6033
6342
  /**
6034
- * Page number
6343
+ * Expected transaction ID
6035
6344
  */
6036
- pageNo: number;
6345
+ id: string;
6037
6346
  /**
6038
- * Page size
6347
+ * Region code for tenant context
6039
6348
  */
6040
- pageSize: number;
6349
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
6041
6350
  };
6042
- type UserControllerGetAllUserSettingsByPageResponse = unknown;
6043
- type UserControllerGetAssetLiabilitySummaryResponse = unknown;
6044
- type PropertyControllerGetAllResponse = unknown;
6045
- type PropertyControllerGetByKeyData = {
6351
+ type ExpectedTransactionControllerUnmatchResponse = void;
6352
+ type ExpectedTransactionControllerEnterNowData = {
6046
6353
  /**
6047
- * Property key
6354
+ * Expected transaction ID
6048
6355
  */
6049
- key: string;
6050
- };
6051
- type PropertyControllerGetByKeyResponse = unknown;
6052
- type PropertyControllerUpdateData = {
6356
+ id: string;
6053
6357
  /**
6054
- * Property key
6358
+ * Region code for tenant context
6055
6359
  */
6056
- key: string;
6057
- requestBody: UpdatePropertyDto;
6360
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
6361
+ requestBody: EnterNowDto;
6058
6362
  };
6059
- type PropertyControllerUpdateResponse = unknown;
6060
- type PropertyControllerDeleteData = {
6363
+ type ExpectedTransactionControllerEnterNowResponse = unknown;
6364
+ type ForecastControllerGetForecastData = {
6061
6365
  /**
6062
- * Property key
6366
+ * Number of months to forecast (1-12, default 3)
6063
6367
  */
6064
- key: string;
6368
+ months?: number;
6369
+ /**
6370
+ * Region code for tenant context
6371
+ */
6372
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
6065
6373
  };
6066
- type PropertyControllerDeleteResponse = void;
6374
+ type ForecastControllerGetForecastResponse = ForecastResponseDto;
6067
6375
  type TransactionRuleControllerCreateData = {
6068
6376
  /**
6069
6377
  * Region code for tenant context
@@ -6183,6 +6491,21 @@ type TransactionRuleControllerTestData = {
6183
6491
  ruleId: string;
6184
6492
  };
6185
6493
  type TransactionRuleControllerTestResponse = TestRuleResponseDto;
6494
+ type CategoryCatalogControllerListData = {
6495
+ /**
6496
+ * Region code for tenant context
6497
+ */
6498
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
6499
+ /**
6500
+ * Filter by routeBearing (entity-router route() consumes it)
6501
+ */
6502
+ routeBearing?: boolean;
6503
+ /**
6504
+ * Filter by scenario
6505
+ */
6506
+ scenario?: 'expense' | 'income' | 'investment' | 'banking' | 'transfer' | 'payment';
6507
+ };
6508
+ type CategoryCatalogControllerListResponse = CategoryCatalogListResponseDto;
6186
6509
  type EventControllerCreateData = {
6187
6510
  /**
6188
6511
  * Region code for tenant context (decorative for life events)
@@ -6271,9 +6594,9 @@ type EventControllerGetSliceData = {
6271
6594
  type EventControllerGetSliceResponse = unknown;
6272
6595
  type OnboardingControllerBootstrapData = {
6273
6596
  /**
6274
- * Region code for tenant context
6597
+ * Region code for tenant context. Not-yet-open codes are accepted: the universal catalog backs onboarding regardless of region (#759)
6275
6598
  */
6276
- region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
6599
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'ar' | 'at' | 'au' | 'az' | 'ba' | 'bb' | 'bd' | 'be' | 'bf' | 'bg' | 'bh' | 'bi' | 'bj' | 'bn' | 'bo' | 'br' | 'bs' | 'bt' | 'bw' | 'by' | 'bz' | 'ca' | 'cd' | 'cf' | 'cg' | 'ch' | 'ci' | 'cl' | 'cm' | 'cn' | 'co' | 'cr' | 'cu' | 'cv' | 'cy' | 'cz' | 'de' | 'dj' | 'dk' | 'dm' | 'do' | 'dz' | 'ec' | 'ee' | 'eg' | 'er' | 'es' | 'et' | 'fj' | 'fm' | 'fr' | 'ga' | 'gb' | 'gd' | 'ge' | 'gh' | 'gm' | 'gn' | 'gq' | 'gr' | 'gt' | 'gw' | 'gy' | 'hk' | 'hn' | 'hr' | 'ht' | 'hu' | 'id' | 'ie' | 'il' | 'in' | 'iq' | 'ir' | 'is' | 'it' | 'jm' | 'jo' | 'jp' | 'ke' | 'kg' | 'kh' | 'ki' | 'km' | 'kn' | 'kr' | 'kw' | 'kz' | 'la' | 'lb' | 'lc' | 'li' | 'lk' | 'lr' | 'ls' | 'lt' | 'lu' | 'lv' | 'ly' | 'ma' | 'mc' | 'md' | 'me' | 'mg' | 'mh' | 'mk' | 'ml' | 'mm' | 'mn' | 'mr' | 'mt' | 'mu' | 'mv' | 'mw' | 'mx' | 'mz' | 'na' | 'ne' | 'ng' | 'ni' | 'nl' | 'no' | 'np' | 'nr' | 'nz' | 'om' | 'pa' | 'pe' | 'pg' | 'ph' | 'pk' | 'pl' | 'ps' | 'pt' | 'pw' | 'py' | 'qa' | 'ro' | 'rs' | 'ru' | 'rw' | 'sa' | 'sb' | 'sc' | 'sd' | 'se' | 'sg' | 'sl' | 'sm' | 'sn' | 'so' | 'sr' | 'st' | 'sv' | 'sy' | 'sz' | 'td' | 'tg' | 'th' | 'tj' | 'tl' | 'tm' | 'tn' | 'to' | 'tr' | 'tt' | 'tv' | 'tw' | 'tz' | 'ua' | 'ug' | 'us' | 'uy' | 'uz' | 'va' | 'vc' | 've' | 'vn' | 'vu' | 'ws' | 'ye' | 'za' | 'zm' | 'zw';
6277
6600
  requestBody: OnboardingDto;
6278
6601
  };
6279
6602
  type OnboardingControllerBootstrapResponse = unknown;
@@ -6312,7 +6635,7 @@ type ReconciliationControllerHistoryData = {
6312
6635
  region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
6313
6636
  };
6314
6637
  type ReconciliationControllerHistoryResponse = Array<ReconciliationRecordDto>;
6315
- type ExportControllerExportBeancountResponse = unknown;
6638
+ type ExportControllerExportBeancountResponse = Blob | File;
6316
6639
  type FileImportControllerImportFileData = {
6317
6640
  /**
6318
6641
  * Bill file to import
@@ -6518,6 +6841,12 @@ type PlatformControllerCreateData = {
6518
6841
  requestBody: CreatePlatformDto;
6519
6842
  };
6520
6843
  type PlatformControllerCreateResponse = unknown;
6844
+ type PlatformControllerGetPlatformListData = {
6845
+ /**
6846
+ * Region code (ISO 3166-1 alpha-2) that biases within-type-bucket ordering (local-region platforms first). Case-insensitive — stored/compared UPPERCASE ("cn" == "CN").
6847
+ */
6848
+ region?: string;
6849
+ };
6521
6850
  type PlatformControllerGetPlatformListResponse = Array<PlatformListItemDto>;
6522
6851
  type PlatformControllerMatchPlatformsData = {
6523
6852
  /**
@@ -6525,11 +6854,26 @@ type PlatformControllerMatchPlatformsData = {
6525
6854
  */
6526
6855
  q: string;
6527
6856
  /**
6528
- * Region code for category override lookup
6857
+ * Region code (ISO 3166-1 alpha-2) that biases within-tier ordering (local-region platforms first); also the intended categoryOverrides key. Case-insensitive — stored/compared UPPERCASE ("cn" == "CN").
6529
6858
  */
6530
6859
  region?: string;
6531
6860
  };
6532
6861
  type PlatformControllerMatchPlatformsResponse = PlatformMatchResponseDto;
6862
+ type PlatformControllerGetPlatformStandardsData = {
6863
+ /**
6864
+ * Platform ID (from a match result)
6865
+ */
6866
+ id: string;
6867
+ /**
6868
+ * Region code (ISO 3166-1 alpha-2, case-insensitive). Required for global platforms (countryCode null) — resolved as their template region; ignored when the platform has its own countryCode.
6869
+ */
6870
+ region?: string;
6871
+ /**
6872
+ * Filter templates by account type (path first segment)
6873
+ */
6874
+ type?: 'Assets' | 'Liabilities' | 'Income' | 'Expenses' | 'Equity';
6875
+ };
6876
+ type PlatformControllerGetPlatformStandardsResponse = PlatformStandardsResponseDto;
6533
6877
  type PlatformControllerUpdateData = {
6534
6878
  /**
6535
6879
  * Platform ID
@@ -6629,6 +6973,14 @@ type AuthControllerAccessTokenLoginData = {
6629
6973
  requestBody: AnonymousLoginDto;
6630
6974
  };
6631
6975
  type AuthControllerAccessTokenLoginResponse = AnonymousLoginResponseDto;
6976
+ type ParserContributionControllerCreateData = {
6977
+ /**
6978
+ * Region code for tenant context (routing only; the institution region rides in the payload meta)
6979
+ */
6980
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
6981
+ requestBody: ParserContributionRequestDto;
6982
+ };
6983
+ type ParserContributionControllerCreateResponse = ParserContributionRelayResponseDto;
6632
6984
  type CacheControllerFlushCacheResponse = unknown;
6633
6985
  type ExchangeRateControllerGetExchangeRateData = {
6634
6986
  /**
@@ -7306,7 +7658,7 @@ type $OpenApiTs = {
7306
7658
  /**
7307
7659
  * Payee profile unverified successfully
7308
7660
  */
7309
- 200: PayeeProfileResponseDto;
7661
+ 204: void;
7310
7662
  /**
7311
7663
  * Admin access required
7312
7664
  */
@@ -7413,598 +7765,598 @@ type $OpenApiTs = {
7413
7765
  };
7414
7766
  };
7415
7767
  };
7416
- '/api/v1/{region}/bean/prices': {
7417
- post: {
7418
- req: PriceControllerCreateData;
7768
+ '/api/v1/{region}/reporting/portfolio/trends': {
7769
+ get: {
7770
+ req: ReportingControllerGetPortfolioTrendsData;
7419
7771
  res: {
7420
7772
  /**
7421
- * Price created successfully
7422
- */
7423
- 201: PriceResponseDto;
7424
- /**
7425
- * Currency or quoteCurrency commodity not found
7426
- */
7427
- 404: unknown;
7428
- /**
7429
- * Price already exists for this currency pair and date
7773
+ * Trends retrieved successfully
7430
7774
  */
7431
- 409: unknown;
7432
- };
7433
- };
7434
- get: {
7435
- req: PriceControllerFindAllData;
7436
- res: {
7775
+ 200: PortfolioTrendsResponseDto;
7437
7776
  /**
7438
- * Prices retrieved successfully
7777
+ * User not authenticated
7439
7778
  */
7440
- 200: PriceListResponseDto;
7779
+ 401: unknown;
7441
7780
  };
7442
7781
  };
7443
7782
  };
7444
- '/api/v1/{region}/bean/prices/{id}': {
7783
+ '/api/v1/{region}/reporting/cash-flow/trends': {
7445
7784
  get: {
7446
- req: PriceControllerFindOneData;
7447
- res: {
7448
- /**
7449
- * Price retrieved successfully
7450
- */
7451
- 200: PriceResponseDto;
7452
- /**
7453
- * Price not found
7454
- */
7455
- 404: unknown;
7456
- };
7457
- };
7458
- put: {
7459
- req: PriceControllerUpdateData;
7785
+ req: ReportingControllerGetCashFlowTrendsData;
7460
7786
  res: {
7461
7787
  /**
7462
- * Price updated successfully
7463
- */
7464
- 200: PriceResponseDto;
7465
- /**
7466
- * Price not found
7788
+ * Cash-flow trends retrieved successfully
7467
7789
  */
7468
- 404: unknown;
7790
+ 200: CashFlowTrendsResponseDto;
7469
7791
  /**
7470
- * Updated price conflicts with existing price
7792
+ * User not authenticated
7471
7793
  */
7472
- 409: unknown;
7794
+ 401: unknown;
7473
7795
  };
7474
7796
  };
7475
- delete: {
7476
- req: PriceControllerDeleteData;
7797
+ };
7798
+ '/api/v1/{region}/reporting/snapshots/generate': {
7799
+ post: {
7800
+ req: ReportingControllerGenerateSnapshotData;
7477
7801
  res: {
7478
7802
  /**
7479
- * Price deleted successfully
7803
+ * Snapshot generated successfully
7480
7804
  */
7481
- 204: void;
7805
+ 200: GenerateSnapshotResponse;
7482
7806
  /**
7483
- * Price not found
7807
+ * Invalid date format
7484
7808
  */
7485
- 404: unknown;
7486
- };
7487
- };
7488
- };
7489
- '/api/v1/{region}/bean/prices/bulk': {
7490
- post: {
7491
- req: PriceControllerBulkCreateData;
7492
- res: {
7809
+ 400: unknown;
7493
7810
  /**
7494
- * Prices created successfully
7811
+ * User not authenticated
7495
7812
  */
7496
- 201: Array<PriceResponseDto>;
7813
+ 401: unknown;
7497
7814
  };
7498
7815
  };
7499
7816
  };
7500
- '/api/v1/{region}/bean/recurring-rules': {
7817
+ '/api/v1/{region}/reporting/snapshots/backfill': {
7501
7818
  post: {
7502
- req: RecurringRuleControllerCreateData;
7819
+ req: ReportingControllerBackfillSnapshotsData;
7503
7820
  res: {
7504
7821
  /**
7505
- * Rule created successfully
7822
+ * Backfill completed successfully
7506
7823
  */
7507
- 201: RecurringRuleResponseDto;
7824
+ 200: BackfillSnapshotsResponse;
7508
7825
  /**
7509
- * Invalid input data (e.g., autoCreate without accounts)
7826
+ * Invalid date format or range
7510
7827
  */
7511
7828
  400: unknown;
7512
7829
  /**
7513
- * Rule with same name already exists
7830
+ * User not authenticated
7514
7831
  */
7515
- 409: unknown;
7516
- };
7517
- };
7518
- get: {
7519
- req: RecurringRuleControllerFindAllData;
7520
- res: {
7832
+ 401: unknown;
7521
7833
  /**
7522
- * Rules retrieved successfully
7834
+ * Backfill already in progress for this user
7523
7835
  */
7524
- 200: Array<RecurringRuleResponseDto>;
7836
+ 409: unknown;
7525
7837
  };
7526
7838
  };
7527
7839
  };
7528
- '/api/v1/{region}/bean/recurring-rules/from-transaction/{transactionId}': {
7840
+ '/api/v1/{region}/bean/prices': {
7529
7841
  post: {
7530
- req: RecurringRuleControllerCreateFromTransactionData;
7842
+ req: PriceControllerCreateData;
7531
7843
  res: {
7532
7844
  /**
7533
- * Rule created successfully
7845
+ * Price created successfully
7534
7846
  */
7535
- 201: RecurringRuleResponseDto;
7847
+ 201: PriceResponseDto;
7536
7848
  /**
7537
- * Transaction not found
7849
+ * Currency or quoteCurrency commodity not found
7850
+ */
7851
+ 404: unknown;
7852
+ /**
7853
+ * Price already exists for this currency pair and date
7538
7854
  */
7539
- 404: ApiProblemResponseDto;
7855
+ 409: unknown;
7856
+ };
7857
+ };
7858
+ get: {
7859
+ req: PriceControllerFindAllData;
7860
+ res: {
7540
7861
  /**
7541
- * Rule with same name already exists or transaction already linked
7862
+ * Prices retrieved successfully
7542
7863
  */
7543
- 409: ApiProblemResponseDto;
7864
+ 200: PriceListResponseDto;
7544
7865
  };
7545
7866
  };
7546
7867
  };
7547
- '/api/v1/{region}/bean/recurring-rules/{id}': {
7868
+ '/api/v1/{region}/bean/prices/{id}': {
7548
7869
  get: {
7549
- req: RecurringRuleControllerFindOneData;
7870
+ req: PriceControllerFindOneData;
7550
7871
  res: {
7551
7872
  /**
7552
- * Rule retrieved successfully
7873
+ * Price retrieved successfully
7553
7874
  */
7554
- 200: RecurringRuleResponseDto;
7875
+ 200: PriceResponseDto;
7555
7876
  /**
7556
- * Rule not found
7877
+ * Price not found
7557
7878
  */
7558
7879
  404: unknown;
7559
7880
  };
7560
7881
  };
7561
- patch: {
7562
- req: RecurringRuleControllerUpdateData;
7882
+ put: {
7883
+ req: PriceControllerUpdateData;
7563
7884
  res: {
7564
7885
  /**
7565
- * Rule updated successfully
7886
+ * Price updated successfully
7566
7887
  */
7567
- 200: RecurringRuleResponseDto;
7888
+ 200: PriceResponseDto;
7568
7889
  /**
7569
- * Invalid input data
7890
+ * Price not found
7570
7891
  */
7571
- 400: unknown;
7892
+ 404: unknown;
7572
7893
  /**
7573
- * Rule not found
7894
+ * Updated price conflicts with existing price
7574
7895
  */
7575
- 404: unknown;
7896
+ 409: unknown;
7576
7897
  };
7577
7898
  };
7578
7899
  delete: {
7579
- req: RecurringRuleControllerDeleteData;
7900
+ req: PriceControllerDeleteData;
7580
7901
  res: {
7581
7902
  /**
7582
- * Rule deleted successfully
7903
+ * Price deleted successfully
7583
7904
  */
7584
7905
  204: void;
7585
7906
  /**
7586
- * Rule not found
7907
+ * Price not found
7587
7908
  */
7588
7909
  404: unknown;
7589
7910
  };
7590
7911
  };
7591
7912
  };
7592
- '/api/v1/{region}/bean/recurring-rules/{id}/stats': {
7593
- get: {
7594
- req: RecurringRuleControllerGetWithStatsData;
7913
+ '/api/v1/{region}/bean/prices/bulk': {
7914
+ post: {
7915
+ req: PriceControllerBulkCreateData;
7595
7916
  res: {
7596
7917
  /**
7597
- * Rule with stats retrieved successfully
7598
- */
7599
- 200: RecurringRuleWithStatsResponseDto;
7600
- /**
7601
- * Rule not found
7918
+ * Prices created successfully
7602
7919
  */
7603
- 404: unknown;
7920
+ 201: Array<PriceResponseDto>;
7604
7921
  };
7605
7922
  };
7606
7923
  };
7607
- '/api/v1/{region}/bean/expected-transactions': {
7608
- get: {
7609
- req: ExpectedTransactionControllerFindAllData;
7924
+ '/api/v1/users': {
7925
+ delete: {
7926
+ req: UserControllerDeleteOwnUserData;
7610
7927
  res: {
7611
7928
  /**
7612
- * Expected transactions retrieved successfully
7929
+ * User deleted successfully
7613
7930
  */
7614
- 200: ExpectedTransactionListResponseDto;
7615
- };
7616
- };
7617
- };
7618
- '/api/v1/{region}/bean/expected-transactions/overdue': {
7619
- get: {
7620
- req: ExpectedTransactionControllerFindOverdueData;
7621
- res: {
7931
+ 204: void;
7622
7932
  /**
7623
- * Overdue transactions retrieved successfully
7933
+ * Invalid access token
7624
7934
  */
7625
- 200: ExpectedTransactionListResponseDto;
7935
+ 403: unknown;
7626
7936
  };
7627
7937
  };
7628
- };
7629
- '/api/v1/{region}/bean/expected-transactions/{id}': {
7630
7938
  get: {
7631
- req: ExpectedTransactionControllerFindOneData;
7939
+ req: UserControllerGetUserData;
7632
7940
  res: {
7633
7941
  /**
7634
- * Expected transaction retrieved successfully
7635
- */
7636
- 200: ExpectedTransactionResponseDto;
7637
- /**
7638
- * Expected transaction not found
7942
+ * User retrieved successfully
7639
7943
  */
7640
- 404: unknown;
7944
+ 200: UserResponseDto;
7641
7945
  };
7642
7946
  };
7643
- };
7644
- '/api/v1/{region}/bean/expected-transactions/{id}/skip': {
7645
7947
  post: {
7646
- req: ExpectedTransactionControllerSkipData;
7948
+ req: UserControllerSignupUserData;
7647
7949
  res: {
7648
7950
  /**
7649
- * Expected transaction skipped successfully
7951
+ * User created successfully
7650
7952
  */
7651
- 200: ExpectedTransactionResponseDto;
7953
+ 201: SignupResponseDto;
7652
7954
  /**
7653
- * Cannot skip - not in PENDING status
7955
+ * Invalid Turnstile token (when Turnstile is enabled)
7654
7956
  */
7655
7957
  400: unknown;
7656
7958
  /**
7657
- * Expected transaction not found
7959
+ * User signup is disabled
7658
7960
  */
7659
- 404: unknown;
7961
+ 403: unknown;
7660
7962
  };
7661
7963
  };
7964
+ };
7965
+ '/api/v1/users/{id}': {
7662
7966
  delete: {
7663
- req: ExpectedTransactionControllerUndoSkipData;
7967
+ req: UserControllerDeleteUserData;
7664
7968
  res: {
7665
7969
  /**
7666
- * Skip undone successfully
7667
- */
7668
- 200: ExpectedTransactionResponseDto;
7669
- /**
7670
- * Cannot undo - not in SKIPPED status
7970
+ * User deleted successfully
7671
7971
  */
7672
- 400: unknown;
7972
+ 204: void;
7673
7973
  /**
7674
- * Expected transaction not found
7974
+ * Cannot delete own account or insufficient permissions
7675
7975
  */
7676
- 404: unknown;
7976
+ 403: unknown;
7677
7977
  };
7678
7978
  };
7679
7979
  };
7680
- '/api/v1/{region}/bean/expected-transactions/{id}/match': {
7681
- post: {
7682
- req: ExpectedTransactionControllerConfirmMatchData;
7980
+ '/api/v1/users/{id}/info': {
7981
+ get: {
7982
+ req: UserControllerGetUserInfoData;
7683
7983
  res: {
7684
7984
  /**
7685
- * Match confirmed successfully
7985
+ * User info retrieved successfully
7686
7986
  */
7687
7987
  200: unknown;
7688
7988
  /**
7689
- * Cannot match - not in PENDING status
7690
- */
7691
- 400: unknown;
7692
- /**
7693
- * Expected or actual transaction not found
7694
- */
7695
- 404: unknown;
7696
- /**
7697
- * Actual transaction already matched to another rule
7989
+ * Cannot access other user info without admin permission
7698
7990
  */
7699
- 409: unknown;
7991
+ 403: unknown;
7700
7992
  };
7701
7993
  };
7702
- delete: {
7703
- req: ExpectedTransactionControllerUnmatchData;
7994
+ };
7995
+ '/api/v1/users/setting': {
7996
+ put: {
7997
+ req: UserControllerUpdateUserSettingData;
7704
7998
  res: {
7705
7999
  /**
7706
- * Match removed successfully
8000
+ * Settings updated successfully
7707
8001
  */
7708
8002
  200: unknown;
7709
8003
  /**
7710
- * Cannot unmatch - not in COMPLETED status
7711
- */
7712
- 400: unknown;
7713
- /**
7714
- * Expected transaction not found
8004
+ * Insufficient permissions
7715
8005
  */
7716
- 404: unknown;
8006
+ 403: unknown;
7717
8007
  };
7718
8008
  };
7719
8009
  };
7720
- '/api/v1/{region}/bean/expected-transactions/{id}/enter': {
7721
- post: {
7722
- req: ExpectedTransactionControllerEnterNowData;
8010
+ '/api/v1/users/settings-by-page': {
8011
+ get: {
8012
+ req: UserControllerGetAllUserSettingsByPageData;
7723
8013
  res: {
7724
8014
  /**
7725
- * Transaction created successfully
7726
- */
7727
- 201: unknown;
7728
- /**
7729
- * Cannot enter - not in PENDING status or missing accounts
7730
- */
7731
- 400: unknown;
7732
- /**
7733
- * Expected transaction or accounts not found
8015
+ * Settings list retrieved successfully
7734
8016
  */
7735
- 404: unknown;
8017
+ 200: unknown;
7736
8018
  };
7737
8019
  };
7738
8020
  };
7739
- '/api/v1/{region}/bean/recurring/forecast': {
8021
+ '/api/v1/users/asset-liability-summary': {
7740
8022
  get: {
7741
- req: ForecastControllerGetForecastData;
7742
8023
  res: {
7743
8024
  /**
7744
- * Forecast retrieved successfully
8025
+ * Summary retrieved successfully
7745
8026
  */
7746
- 200: ForecastResponseDto;
8027
+ 200: unknown;
7747
8028
  };
7748
8029
  };
7749
8030
  };
7750
- '/api/v1/{region}/reporting/portfolio/trends': {
8031
+ '/api/v1/admin/properties': {
7751
8032
  get: {
7752
- req: ReportingControllerGetPortfolioTrendsData;
7753
8033
  res: {
7754
8034
  /**
7755
- * Trends retrieved successfully
8035
+ * Properties retrieved successfully
7756
8036
  */
7757
- 200: PortfolioTrendsResponseDto;
8037
+ 200: unknown;
7758
8038
  /**
7759
- * User not authenticated
8039
+ * Unauthorized
7760
8040
  */
7761
8041
  401: unknown;
8042
+ /**
8043
+ * Forbidden - insufficient permissions
8044
+ */
8045
+ 403: unknown;
7762
8046
  };
7763
8047
  };
7764
8048
  };
7765
- '/api/v1/{region}/reporting/cash-flow/trends': {
8049
+ '/api/v1/admin/properties/{key}': {
7766
8050
  get: {
7767
- req: ReportingControllerGetCashFlowTrendsData;
8051
+ req: PropertyControllerGetByKeyData;
7768
8052
  res: {
7769
8053
  /**
7770
- * Cash-flow trends retrieved successfully
8054
+ * Property retrieved successfully
7771
8055
  */
7772
- 200: CashFlowTrendsResponseDto;
8056
+ 200: unknown;
7773
8057
  /**
7774
- * User not authenticated
8058
+ * Unauthorized
7775
8059
  */
7776
8060
  401: unknown;
8061
+ /**
8062
+ * Forbidden - insufficient permissions
8063
+ */
8064
+ 403: unknown;
8065
+ /**
8066
+ * Property not found
8067
+ */
8068
+ 404: unknown;
7777
8069
  };
7778
8070
  };
7779
- };
7780
- '/api/v1/{region}/reporting/snapshots/generate': {
7781
- post: {
7782
- req: ReportingControllerGenerateSnapshotData;
8071
+ put: {
8072
+ req: PropertyControllerUpdateData;
7783
8073
  res: {
7784
8074
  /**
7785
- * Snapshot generated successfully
8075
+ * Property updated successfully
7786
8076
  */
7787
- 200: GenerateSnapshotResponse;
8077
+ 200: unknown;
7788
8078
  /**
7789
- * Invalid date format
8079
+ * Unauthorized
7790
8080
  */
7791
- 400: unknown;
8081
+ 401: unknown;
7792
8082
  /**
7793
- * User not authenticated
8083
+ * Forbidden - insufficient permissions
8084
+ */
8085
+ 403: unknown;
8086
+ };
8087
+ };
8088
+ delete: {
8089
+ req: PropertyControllerDeleteData;
8090
+ res: {
8091
+ /**
8092
+ * Property deleted successfully
8093
+ */
8094
+ 204: void;
8095
+ /**
8096
+ * Unauthorized
7794
8097
  */
7795
8098
  401: unknown;
8099
+ /**
8100
+ * Forbidden - insufficient permissions
8101
+ */
8102
+ 403: unknown;
8103
+ /**
8104
+ * Property not found
8105
+ */
8106
+ 404: unknown;
7796
8107
  };
7797
8108
  };
7798
8109
  };
7799
- '/api/v1/{region}/reporting/snapshots/backfill': {
8110
+ '/api/v1/{region}/bean/recurring-rules': {
7800
8111
  post: {
7801
- req: ReportingControllerBackfillSnapshotsData;
8112
+ req: RecurringRuleControllerCreateData;
7802
8113
  res: {
7803
8114
  /**
7804
- * Backfill completed successfully
8115
+ * Rule created successfully
7805
8116
  */
7806
- 200: BackfillSnapshotsResponse;
8117
+ 201: RecurringRuleResponseDto;
7807
8118
  /**
7808
- * Invalid date format or range
8119
+ * Invalid input data (e.g., autoCreate without accounts)
7809
8120
  */
7810
8121
  400: unknown;
7811
8122
  /**
7812
- * User not authenticated
8123
+ * Rule with same name already exists
7813
8124
  */
7814
- 401: unknown;
8125
+ 409: unknown;
8126
+ };
8127
+ };
8128
+ get: {
8129
+ req: RecurringRuleControllerFindAllData;
8130
+ res: {
7815
8131
  /**
7816
- * Backfill already in progress for this user
8132
+ * Rules retrieved successfully
7817
8133
  */
7818
- 409: unknown;
8134
+ 200: Array<RecurringRuleResponseDto>;
7819
8135
  };
7820
8136
  };
7821
8137
  };
7822
- '/api/v1/users': {
7823
- delete: {
7824
- req: UserControllerDeleteOwnUserData;
8138
+ '/api/v1/{region}/bean/recurring-rules/from-transaction/{transactionId}': {
8139
+ post: {
8140
+ req: RecurringRuleControllerCreateFromTransactionData;
7825
8141
  res: {
7826
8142
  /**
7827
- * User deleted successfully
8143
+ * Rule created successfully
7828
8144
  */
7829
- 204: void;
8145
+ 201: RecurringRuleResponseDto;
7830
8146
  /**
7831
- * Invalid access token
8147
+ * Transaction not found
7832
8148
  */
7833
- 403: unknown;
8149
+ 404: ApiProblemResponseDto;
8150
+ /**
8151
+ * Rule with same name already exists or transaction already linked
8152
+ */
8153
+ 409: ApiProblemResponseDto;
7834
8154
  };
7835
8155
  };
8156
+ };
8157
+ '/api/v1/{region}/bean/recurring-rules/{id}': {
7836
8158
  get: {
7837
- req: UserControllerGetUserData;
8159
+ req: RecurringRuleControllerFindOneData;
7838
8160
  res: {
7839
8161
  /**
7840
- * User retrieved successfully
8162
+ * Rule retrieved successfully
7841
8163
  */
7842
- 200: unknown;
8164
+ 200: RecurringRuleResponseDto;
8165
+ /**
8166
+ * Rule not found
8167
+ */
8168
+ 404: unknown;
7843
8169
  };
7844
8170
  };
7845
- post: {
7846
- req: UserControllerSignupUserData;
8171
+ patch: {
8172
+ req: RecurringRuleControllerUpdateData;
7847
8173
  res: {
7848
8174
  /**
7849
- * User created successfully
8175
+ * Rule updated successfully
7850
8176
  */
7851
- 201: SignupResponseDto;
8177
+ 200: RecurringRuleResponseDto;
7852
8178
  /**
7853
- * Invalid Turnstile token (when Turnstile is enabled)
8179
+ * Invalid input data
7854
8180
  */
7855
8181
  400: unknown;
7856
8182
  /**
7857
- * User signup is disabled
8183
+ * Rule not found
7858
8184
  */
7859
- 403: unknown;
8185
+ 404: unknown;
7860
8186
  };
7861
8187
  };
7862
- };
7863
- '/api/v1/users/{id}': {
7864
8188
  delete: {
7865
- req: UserControllerDeleteUserData;
8189
+ req: RecurringRuleControllerDeleteData;
7866
8190
  res: {
7867
8191
  /**
7868
- * User deleted successfully
8192
+ * Rule deleted successfully
7869
8193
  */
7870
8194
  204: void;
7871
8195
  /**
7872
- * Cannot delete own account or insufficient permissions
8196
+ * Rule not found
7873
8197
  */
7874
- 403: unknown;
8198
+ 404: unknown;
7875
8199
  };
7876
8200
  };
7877
8201
  };
7878
- '/api/v1/users/{id}/info': {
8202
+ '/api/v1/{region}/bean/recurring-rules/{id}/stats': {
7879
8203
  get: {
7880
- req: UserControllerGetUserInfoData;
8204
+ req: RecurringRuleControllerGetWithStatsData;
7881
8205
  res: {
7882
8206
  /**
7883
- * User info retrieved successfully
8207
+ * Rule with stats retrieved successfully
7884
8208
  */
7885
- 200: unknown;
8209
+ 200: RecurringRuleWithStatsResponseDto;
7886
8210
  /**
7887
- * Cannot access other user info without admin permission
8211
+ * Rule not found
7888
8212
  */
7889
- 403: unknown;
8213
+ 404: unknown;
7890
8214
  };
7891
8215
  };
7892
8216
  };
7893
- '/api/v1/users/setting': {
7894
- put: {
7895
- req: UserControllerUpdateUserSettingData;
8217
+ '/api/v1/{region}/bean/expected-transactions': {
8218
+ get: {
8219
+ req: ExpectedTransactionControllerFindAllData;
7896
8220
  res: {
7897
8221
  /**
7898
- * Settings updated successfully
7899
- */
7900
- 200: unknown;
7901
- /**
7902
- * Insufficient permissions
8222
+ * Expected transactions retrieved successfully
7903
8223
  */
7904
- 403: unknown;
8224
+ 200: ExpectedTransactionListResponseDto;
7905
8225
  };
7906
8226
  };
7907
8227
  };
7908
- '/api/v1/users/settings-by-page': {
8228
+ '/api/v1/{region}/bean/expected-transactions/overdue': {
7909
8229
  get: {
7910
- req: UserControllerGetAllUserSettingsByPageData;
8230
+ req: ExpectedTransactionControllerFindOverdueData;
7911
8231
  res: {
7912
8232
  /**
7913
- * Settings list retrieved successfully
8233
+ * Overdue transactions retrieved successfully
7914
8234
  */
7915
- 200: unknown;
8235
+ 200: ExpectedTransactionListResponseDto;
7916
8236
  };
7917
8237
  };
7918
8238
  };
7919
- '/api/v1/users/asset-liability-summary': {
8239
+ '/api/v1/{region}/bean/expected-transactions/{id}': {
7920
8240
  get: {
8241
+ req: ExpectedTransactionControllerFindOneData;
7921
8242
  res: {
7922
8243
  /**
7923
- * Summary retrieved successfully
8244
+ * Expected transaction retrieved successfully
7924
8245
  */
7925
- 200: unknown;
8246
+ 200: ExpectedTransactionResponseDto;
8247
+ /**
8248
+ * Expected transaction not found
8249
+ */
8250
+ 404: unknown;
7926
8251
  };
7927
8252
  };
7928
8253
  };
7929
- '/api/v1/admin/properties': {
7930
- get: {
8254
+ '/api/v1/{region}/bean/expected-transactions/{id}/skip': {
8255
+ post: {
8256
+ req: ExpectedTransactionControllerSkipData;
7931
8257
  res: {
7932
8258
  /**
7933
- * Properties retrieved successfully
8259
+ * Expected transaction skipped successfully
7934
8260
  */
7935
- 200: unknown;
8261
+ 200: ExpectedTransactionResponseDto;
7936
8262
  /**
7937
- * Unauthorized
8263
+ * Cannot skip - not in PENDING status
7938
8264
  */
7939
- 401: unknown;
8265
+ 400: unknown;
7940
8266
  /**
7941
- * Forbidden - insufficient permissions
8267
+ * Expected transaction not found
7942
8268
  */
7943
- 403: unknown;
8269
+ 404: unknown;
7944
8270
  };
7945
8271
  };
7946
- };
7947
- '/api/v1/admin/properties/{key}': {
7948
- get: {
7949
- req: PropertyControllerGetByKeyData;
8272
+ delete: {
8273
+ req: ExpectedTransactionControllerUndoSkipData;
7950
8274
  res: {
7951
8275
  /**
7952
- * Property retrieved successfully
7953
- */
7954
- 200: unknown;
7955
- /**
7956
- * Unauthorized
8276
+ * Skip undone successfully
7957
8277
  */
7958
- 401: unknown;
8278
+ 204: void;
7959
8279
  /**
7960
- * Forbidden - insufficient permissions
8280
+ * Cannot undo - not in SKIPPED status
7961
8281
  */
7962
- 403: unknown;
8282
+ 400: unknown;
7963
8283
  /**
7964
- * Property not found
8284
+ * Expected transaction not found
7965
8285
  */
7966
8286
  404: unknown;
7967
8287
  };
7968
8288
  };
7969
- put: {
7970
- req: PropertyControllerUpdateData;
8289
+ };
8290
+ '/api/v1/{region}/bean/expected-transactions/{id}/match': {
8291
+ post: {
8292
+ req: ExpectedTransactionControllerConfirmMatchData;
7971
8293
  res: {
7972
8294
  /**
7973
- * Property updated successfully
8295
+ * Match confirmed successfully
7974
8296
  */
7975
8297
  200: unknown;
7976
8298
  /**
7977
- * Unauthorized
8299
+ * Cannot match - not in PENDING status
7978
8300
  */
7979
- 401: unknown;
8301
+ 400: unknown;
7980
8302
  /**
7981
- * Forbidden - insufficient permissions
8303
+ * Expected or actual transaction not found
7982
8304
  */
7983
- 403: unknown;
8305
+ 404: unknown;
8306
+ /**
8307
+ * Actual transaction already matched to another rule
8308
+ */
8309
+ 409: unknown;
7984
8310
  };
7985
8311
  };
7986
8312
  delete: {
7987
- req: PropertyControllerDeleteData;
8313
+ req: ExpectedTransactionControllerUnmatchData;
7988
8314
  res: {
7989
8315
  /**
7990
- * Property deleted successfully
8316
+ * Match removed successfully
7991
8317
  */
7992
8318
  204: void;
7993
8319
  /**
7994
- * Unauthorized
8320
+ * Cannot unmatch - not in COMPLETED status
7995
8321
  */
7996
- 401: unknown;
8322
+ 400: unknown;
7997
8323
  /**
7998
- * Forbidden - insufficient permissions
8324
+ * Expected transaction not found
7999
8325
  */
8000
- 403: unknown;
8326
+ 404: unknown;
8327
+ };
8328
+ };
8329
+ };
8330
+ '/api/v1/{region}/bean/expected-transactions/{id}/enter': {
8331
+ post: {
8332
+ req: ExpectedTransactionControllerEnterNowData;
8333
+ res: {
8001
8334
  /**
8002
- * Property not found
8335
+ * Transaction created successfully
8336
+ */
8337
+ 201: unknown;
8338
+ /**
8339
+ * Cannot enter - not in PENDING status or missing accounts
8340
+ */
8341
+ 400: unknown;
8342
+ /**
8343
+ * Expected transaction or accounts not found
8003
8344
  */
8004
8345
  404: unknown;
8005
8346
  };
8006
8347
  };
8007
8348
  };
8349
+ '/api/v1/{region}/bean/recurring/forecast': {
8350
+ get: {
8351
+ req: ForecastControllerGetForecastData;
8352
+ res: {
8353
+ /**
8354
+ * Forecast retrieved successfully
8355
+ */
8356
+ 200: ForecastResponseDto;
8357
+ };
8358
+ };
8359
+ };
8008
8360
  '/api/v1/{region}/bean/transaction-rules': {
8009
8361
  post: {
8010
8362
  req: TransactionRuleControllerCreateData;
@@ -8213,6 +8565,17 @@ type $OpenApiTs = {
8213
8565
  };
8214
8566
  };
8215
8567
  };
8568
+ '/api/v1/{region}/bean/categories': {
8569
+ get: {
8570
+ req: CategoryCatalogControllerListData;
8571
+ res: {
8572
+ /**
8573
+ * Category catalog retrieved successfully
8574
+ */
8575
+ 200: CategoryCatalogListResponseDto;
8576
+ };
8577
+ };
8578
+ };
8216
8579
  '/api/v1/{region}/bean/events': {
8217
8580
  post: {
8218
8581
  req: EventControllerCreateData;
@@ -8391,7 +8754,10 @@ type $OpenApiTs = {
8391
8754
  '/api/v1/{region}/bean/export/beancount': {
8392
8755
  get: {
8393
8756
  res: {
8394
- 200: unknown;
8757
+ /**
8758
+ * ZIP archive (application/zip) streamed as an attachment
8759
+ */
8760
+ 200: Blob | File;
8395
8761
  };
8396
8762
  };
8397
8763
  };
@@ -8752,6 +9118,7 @@ type $OpenApiTs = {
8752
9118
  };
8753
9119
  '/api/v1/bean/platforms/list': {
8754
9120
  get: {
9121
+ req: PlatformControllerGetPlatformListData;
8755
9122
  res: {
8756
9123
  /**
8757
9124
  * List of platforms with user binding status
@@ -8771,6 +9138,17 @@ type $OpenApiTs = {
8771
9138
  };
8772
9139
  };
8773
9140
  };
9141
+ '/api/v1/bean/platforms/{id}/standards': {
9142
+ get: {
9143
+ req: PlatformControllerGetPlatformStandardsData;
9144
+ res: {
9145
+ /**
9146
+ * Resolved region plus the merged account-standard catalog of that region (groupable by productCategory client-side)
9147
+ */
9148
+ 200: PlatformStandardsResponseDto;
9149
+ };
9150
+ };
9151
+ };
8774
9152
  '/api/v1/bean/platforms/{id}': {
8775
9153
  put: {
8776
9154
  req: PlatformControllerUpdateData;
@@ -8915,10 +9293,48 @@ type $OpenApiTs = {
8915
9293
  };
8916
9294
  };
8917
9295
  };
9296
+ '/api/v1/{region}/community/parser-contributions': {
9297
+ post: {
9298
+ req: ParserContributionControllerCreateData;
9299
+ res: {
9300
+ /**
9301
+ * Issue created by the bot
9302
+ */
9303
+ 201: ParserContributionRelayResponseDto;
9304
+ /**
9305
+ * Unauthorized
9306
+ */
9307
+ 401: ApiProblemResponseDto;
9308
+ /**
9309
+ * Validation failed (institution slug, empty samples, row/cell size limits)
9310
+ */
9311
+ 422: ApiProblemResponseDto;
9312
+ /**
9313
+ * Rate limited (5 submissions per user per hour)
9314
+ */
9315
+ 429: ApiProblemResponseDto;
9316
+ /**
9317
+ * Relay not configured on this deployment — clients fall back to the clipboard flow
9318
+ */
9319
+ 501: ApiProblemResponseDto;
9320
+ /**
9321
+ * GitHub bot failure (upstream), safe to retry
9322
+ */
9323
+ 502: ApiProblemResponseDto;
9324
+ };
9325
+ };
9326
+ };
8918
9327
  '/api/v1/cache/flush': {
8919
9328
  post: {
8920
9329
  res: {
8921
- 201: unknown;
9330
+ /**
9331
+ * Cache flushed successfully
9332
+ */
9333
+ 200: unknown;
9334
+ /**
9335
+ * Admin access required
9336
+ */
9337
+ 403: ApiProblemResponseDto;
8922
9338
  };
8923
9339
  };
8924
9340
  };
@@ -9194,10 +9610,11 @@ declare class BeanTransactionsService {
9194
9610
  * @param data.offset Number of items to skip (default: 0)
9195
9611
  * @param data.dateFrom Filter by start date (inclusive), format: YYYY-MM-DD
9196
9612
  * @param data.dateTo Filter by end date (inclusive), format: YYYY-MM-DD
9197
- * @param data.status Filter by transaction status
9613
+ * @param data.status Filter by transaction status: single value, comma-separated multi-value (e.g. VOIDED,SUPERSEDED), or ALL to include audit rows. Defaults to ACTIVE-only (ADR-0128; previously unfiltered — breaking change).
9198
9614
  * @param data.search Search in narration and payee fields (max 200 chars)
9199
9615
  * @param data.accountId Filter by account ID (transactions with postings to this account)
9200
- * @param data.category Filter by ADR-0075 functional category (Group segment); matches any posting to an Expenses/Income account whose derived Group segment equals this value
9616
+ * @param data.category Filter by ADR-0075 functional category (Group segment); matches any posting to an account whose derived Group segment equals this value. Must be accompanied by flow (ADR-0126).
9617
+ * @param data.flow Required when category is present (400 otherwise) and vice versa (ADR-0126). Restricts the category account set to the flow root (income → Income:, expense → Expenses:) and drives the per-leg sign normalization of row viewpointAmount and the summary. OpenAPI cannot express conditional requiredness — the pairing is enforced at runtime.
9201
9618
  * @returns TransactionListResponseDto Transaction list
9202
9619
  * @throws ApiError
9203
9620
  */
@@ -9503,4 +9920,4 @@ type OpenAPIConfig = {
9503
9920
  };
9504
9921
  declare const OpenAPI: OpenAPIConfig;
9505
9922
 
9506
- export { type $OpenApiTs, type AccountControllerAddOpeningBalanceData, type AccountControllerAddOpeningBalanceResponse, type AccountControllerCloseData, type AccountControllerCloseResponse, type AccountControllerCreateData, type AccountControllerCreateResponse, type AccountControllerDeleteData, type AccountControllerDeleteResponse, type AccountControllerFindAllData, type AccountControllerFindAllResponse, type AccountControllerFindOneData, type AccountControllerFindOneResponse, type AccountControllerReopenData, type AccountControllerReopenResponse, type AccountControllerUpdateData, type AccountControllerUpdateResponse, type AccountExchangeRateWarningDto, type AccountItemDto, type AccountItemWithAssetClassDto, type AccountListResponseDto, type AccountResponseDto, type AccountStandardListResponseDto, type AccountStandardResponseDto, type AccountStandardsControllerGetRegionsData, type AccountStandardsControllerGetRegionsResponse, type AccountStandardsControllerGetTemplateMetadataData, type AccountStandardsControllerGetTemplateMetadataResponse, type AccountStandardsControllerGetTemplatesData, type AccountStandardsControllerGetTemplatesResponse, type AccountsResponseDto, type AccountsSummaryDto, type ActualBalanceDto, type AmountDto, type AmountRangeDto, type AnonymousLoginDto, type AnonymousLoginResponseDto, type ApiKeysControllerCreateApiKeyResponse, type ApiProblemResponseDto, type AssertReconciliationDto, type AssetClassAccountsResponseDto, type AssetClassGroupDto, type AssetClassSummaryDto, type AuthControllerAccessTokenLoginData, type AuthControllerAccessTokenLoginResponse, type BackfillSnapshotsBody, type BackfillSnapshotsResponse, type BalanceByCurrencyDto, type BalanceControllerGetBalanceData, type BalanceControllerGetBalanceResponse, type BalanceControllerGetMultiCurrencyBalanceData, type BalanceControllerGetMultiCurrencyBalanceResponse, type BalanceResponseDto, type BatchCreateTransactionDto, type BatchResolveDto, type BatchResolveResultDto, type BatchTransactionErrorDto, type BatchTransactionResponseDto, BeanAccountsService, BeanBalancesService, BeanCommoditiesService, BeanTransactionsService, type BulkCreateRulesDto, type BulkCreateRulesResponseDto, type CacheControllerFlushCacheResponse, type CashFlowByCurrencyDto, type CashFlowPointDto, type CashFlowResponseDto, type CashFlowTrendSummaryDto, type CashFlowTrendsResponseDto, type CategoryGroupDto, type CloseAccountDto, type CommodityControllerBulkCreateData, type CommodityControllerBulkCreateResponse, type CommodityControllerCreateData, type CommodityControllerCreateResponse, type CommodityControllerDeleteData, type CommodityControllerDeleteResponse, type CommodityControllerFindAllData, type CommodityControllerFindAllResponse, type CommodityControllerFindOneData, type CommodityControllerFindOneResponse, type CommodityControllerGetOrCreateData, type CommodityControllerGetOrCreateResponse, type CommodityControllerUpdateData, type CommodityControllerUpdateResponse, type CommodityListResponseDto, type CommodityResponseDto, type ComputeReconciliationDto, type ConfirmMatchDto, type ConvertedCashFlowDto, type ConvertedNetWorthDto, type CorrectTransactionDto, type CostDetailDto, type CostSpecDto, type CreateAccountDto, type CreateBeanEventDto, type CreateBeanPriceDto, type CreateCommodityDto, type CreateExternalAccountLinkDto, type CreateOpeningBalanceDto, type CreatePayeeDto, type CreatePayeeProfileDto, type CreatePlatformDto, type CreatePostingDto, type CreateRecurringRuleDto, type CreateRuleFromTransactionDto, type CreateTransactionDto, type CreateTransactionRuleDto, type CurrencyBalanceDto, type CurrentPriceDto, type DashboardControllerGetAccountsData, type DashboardControllerGetAccountsResponse, type DashboardControllerGetCashFlowData, type DashboardControllerGetCashFlowResponse, type DashboardControllerGetExpensesData, type DashboardControllerGetExpensesResponse, type DashboardControllerGetNetWorthData, type DashboardControllerGetNetWorthResponse, type DecisionOptionDto, type DeleteOwnUserDto, type EnterNowDto, type EventControllerCreateData, type EventControllerCreateResponse, type EventControllerDeleteData, type EventControllerDeleteResponse, type EventControllerFindAllData, type EventControllerFindAllResponse, type EventControllerFindOneData, type EventControllerFindOneResponse, type EventControllerGetSliceData, type EventControllerGetSliceResponse, type EventControllerUpdateData, type EventControllerUpdateResponse, type EventListResponseDto, type EventResponseDto, type ExchangeRateControllerGetExchangeRateData, type ExchangeRateControllerGetExchangeRateResponse, type ExchangeRateWarningDto, type ExpectedTransactionControllerConfirmMatchData, type ExpectedTransactionControllerConfirmMatchResponse, type ExpectedTransactionControllerEnterNowData, type ExpectedTransactionControllerEnterNowResponse, type ExpectedTransactionControllerFindAllData, type ExpectedTransactionControllerFindAllResponse, type ExpectedTransactionControllerFindOneData, type ExpectedTransactionControllerFindOneResponse, type ExpectedTransactionControllerFindOverdueData, type ExpectedTransactionControllerFindOverdueResponse, type ExpectedTransactionControllerSkipData, type ExpectedTransactionControllerSkipResponse, type ExpectedTransactionControllerUndoSkipData, type ExpectedTransactionControllerUndoSkipResponse, type ExpectedTransactionControllerUnmatchData, type ExpectedTransactionControllerUnmatchResponse, type ExpectedTransactionListResponseDto, type ExpectedTransactionResponseDto, type ExpectedTransactionRuleDto, type ExpensesByCategoryResponseDto, type ExpensesByCategorySummaryDto, type ExportControllerExportBeancountResponse, type ExportRulesResponseDto, type ExternalAccountLinkControllerCreateData, type ExternalAccountLinkControllerCreateResponse, type ExternalAccountLinkControllerFindAllData, type ExternalAccountLinkControllerFindAllResponse, type ExternalAccountLinkControllerFindOneData, type ExternalAccountLinkControllerFindOneResponse, type ExternalAccountLinkControllerRemoveData, type ExternalAccountLinkControllerRemoveResponse, type ExternalAccountLinkListResponseDto, type ExternalAccountLinkResponseDto, type FileImportControllerIdentifyFileData, type FileImportControllerIdentifyFileResponse, type FileImportControllerImportBeancountData, type FileImportControllerImportBeancountResponse, type FileImportControllerImportFileData, type FileImportControllerImportFileResponse, type FileImportDto, type ForecastControllerGetForecastData, type ForecastControllerGetForecastResponse, type ForecastItemDto, type ForecastResponseDto, type FxRateDto, type GenerateSnapshotBody, type GenerateSnapshotResponse, type HealthControllerCheckDatabaseResponse, type HealthControllerCheckOpenBbResponse, type HealthControllerCheckRedisResponse, type HealthControllerGetCircuitBreakersHealthResponse, type HealthControllerGetHealthResponse, type HealthControllerGetMetricsResponse, type HealthControllerResetCircuitBreakerData, type HealthControllerResetCircuitBreakerResponse, HealthService, type HoldingAssetClassAccountSliceDto, type HoldingAssetClassCrossAccountResponseDto, type HoldingPnlControllerGetHoldingPnlData, type HoldingPnlControllerGetHoldingPnlResponse, type HoldingPnlResponseDto, type HoldingPnlRowDto, type HoldingPnlWarningDto, type IdentifyResultDto, type ImportErrorDto, type ImportResultDto, type ImporterConfigControllerGetConfigData, type ImporterConfigControllerGetConfigResponse, type ImporterConfigControllerResetConfigData, type ImporterConfigControllerResetConfigResponse, type ImporterConfigControllerUpdateConfigData, type ImporterConfigControllerUpdateConfigResponse, type ImporterConfigDataDto, type ImporterConfigDto, type InfoControllerGetInfoResponse, type MapperDefaultsDto, type MonetaryDto, type MonthlyForecastDto, type MultiCurrencyBalanceResponseDto, type MultiCurrencyPointDto, type NetWorthByCurrencyDto, type NetWorthResponseDto, type NlpAccountConfirmationDataDto, type NlpAlternativePayeeDto, type NlpControllerClearSessionData, type NlpControllerClearSessionResponse, type NlpControllerGetSessionData, type NlpControllerGetSessionResponse, type NlpControllerProcessNaturalLanguageData, type NlpControllerProcessNaturalLanguageResponse, type NlpDefaultAccountsDto, type NlpDuplicateConfirmationDataDto, type NlpParsedDataDto, type NlpPayeeConfirmationDataDto, type NlpResponseDto, type NlpRuleConfirmationDataDto, type NlpSimilarityDto, type NlpSourceTransactionDto, type NlpSuggestedAccountDto, type NlpSuggestedAccountsDto, type NlpSuggestedPayeeDto, type NlpTargetTransactionDto, type NlpTransactionInfoDto, type OnboardingAccountDto, type OnboardingControllerBootstrapData, type OnboardingControllerBootstrapResponse, type OnboardingDto, OpenAPI, type OpenAPIConfig, type OpeningBalanceResultDto, type PadReconciliationDto, type PadResultDto, type ParserTelemetryReportDto, type PayeeAutocompleteResponseDto, type PayeeControllerAutocompleteData, type PayeeControllerAutocompleteResponse, type PayeeControllerCreateData, type PayeeControllerCreateResponse, type PayeeControllerDeleteData, type PayeeControllerDeleteResponse, type PayeeControllerFindAllData, type PayeeControllerFindAllResponse, type PayeeControllerFindOneData, type PayeeControllerFindOneResponse, type PayeeControllerGetTopPayeesData, type PayeeControllerGetTopPayeesResponse, type PayeeControllerUpdateData, type PayeeControllerUpdateResponse, type PayeeListResponseDto, type PayeeProfileAdminControllerCreateData, type PayeeProfileAdminControllerCreateResponse, type PayeeProfileAdminControllerDeleteData, type PayeeProfileAdminControllerDeleteResponse, type PayeeProfileAdminControllerFindAllData, type PayeeProfileAdminControllerFindAllResponse, type PayeeProfileAdminControllerFindOneData, type PayeeProfileAdminControllerFindOneResponse, type PayeeProfileAdminControllerUnverifyData, type PayeeProfileAdminControllerUnverifyResponse, type PayeeProfileAdminControllerUpdateData, type PayeeProfileAdminControllerUpdateResponse, type PayeeProfileAdminControllerVerifyData, type PayeeProfileAdminControllerVerifyResponse, type PayeeProfileListResponseDto, type PayeeProfileResponseDto, type PayeeResponseDto, type PayeeStatsResponseDto, type PlatformControllerCreateData, type PlatformControllerCreateResponse, type PlatformControllerDeleteData, type PlatformControllerDeleteResponse, type PlatformControllerFindAllResponse, type PlatformControllerGetPlatformListResponse, type PlatformControllerMatchPlatformsData, type PlatformControllerMatchPlatformsResponse, type PlatformControllerUpdateData, type PlatformControllerUpdateResponse, type PlatformGroupDto, type PlatformListItemDto, type PlatformMatchResponseDto, type PlatformMatchResultDto, type PortfolioTrendsResponseDto, type PostingDetailDto, type PostingResponseDto, type PriceControllerBulkCreateData, type PriceControllerBulkCreateResponse, type PriceControllerCreateData, type PriceControllerCreateResponse, type PriceControllerDeleteData, type PriceControllerDeleteResponse, type PriceControllerFindAllData, type PriceControllerFindAllResponse, type PriceControllerFindOneData, type PriceControllerFindOneResponse, type PriceControllerUpdateData, type PriceControllerUpdateResponse, type PriceListResponseDto, type PriceResponseDto, type ProcessNlpDto, type PropertyControllerDeleteData, type PropertyControllerDeleteResponse, type PropertyControllerGetAllResponse, type PropertyControllerGetByKeyData, type PropertyControllerGetByKeyResponse, type PropertyControllerUpdateData, type PropertyControllerUpdateResponse, type ProviderSyncConfigDto, type ProviderSyncControllerGetSupportedProvidersData, type ProviderSyncControllerGetSupportedProvidersResponse, type ProviderSyncControllerIsProviderSupportedData, type ProviderSyncControllerIsProviderSupportedResponse, type ProviderSyncControllerSyncData, type ProviderSyncControllerSyncResponse, type ProviderSyncDto, type ProviderSyncResponseDto, ProviderSyncService, type ReconciliationComputeResultDto, type ReconciliationControllerAssertData, type ReconciliationControllerAssertResponse, type ReconciliationControllerComputeData, type ReconciliationControllerComputeResponse, type ReconciliationControllerHistoryData, type ReconciliationControllerHistoryResponse, type ReconciliationControllerPadData, type ReconciliationControllerPadResponse, type ReconciliationRecordDto, type RecurringMatchInfoDto, type RecurringRuleControllerCreateData, type RecurringRuleControllerCreateFromTransactionData, type RecurringRuleControllerCreateFromTransactionResponse, type RecurringRuleControllerCreateResponse, type RecurringRuleControllerDeleteData, type RecurringRuleControllerDeleteResponse, type RecurringRuleControllerFindAllData, type RecurringRuleControllerFindAllResponse, type RecurringRuleControllerFindOneData, type RecurringRuleControllerFindOneResponse, type RecurringRuleControllerGetWithStatsData, type RecurringRuleControllerGetWithStatsResponse, type RecurringRuleControllerUpdateData, type RecurringRuleControllerUpdateResponse, type RecurringRuleResponseDto, type RecurringRuleWithStatsResponseDto, type RecurringSuggestionDto, type RegionConfigDto, type RegionInfoDto, type RegionsMetadataResponseDto, type ReopenAccountDto, type ReportingControllerBackfillSnapshotsData, type ReportingControllerBackfillSnapshotsResponse, type ReportingControllerGenerateSnapshotData, type ReportingControllerGenerateSnapshotResponse, type ReportingControllerGetCashFlowTrendsData, type ReportingControllerGetCashFlowTrendsResponse, type ReportingControllerGetPortfolioTrendsData, type ReportingControllerGetPortfolioTrendsResponse, type ResolveResultDto, type ResolveReviewDto, type ReviewControllerBatchResolveData, type ReviewControllerBatchResolveResponse, type ReviewControllerFindAllData, type ReviewControllerFindAllResponse, type ReviewControllerFindOneData, type ReviewControllerFindOneResponse, type ReviewControllerGetStatsData, type ReviewControllerGetStatsResponse, type ReviewControllerResolveData, type ReviewControllerResolveResponse, type ReviewControllerUndoData, type ReviewControllerUndoResponse, type ReviewDetailDto, type ReviewItemPreviewDto, type ReviewListResponseDto, type ReviewStatsDto, type ReviewSummaryDto, type RuleStatisticsResponseDto, type SignupDto, type SignupResponseDto, type SupportedProvidersResponseDto, type SymbolControllerGetQuoteData, type SymbolControllerGetQuoteResponse, type SymbolControllerSearchData, type SymbolControllerSearchResponse, type SymbolQuoteDto, type SymbolSearchResultDto, type TagSuggestionDto, type TagSuggestionsResponseDto, type TelemetryControllerGetCoverageMetricsData, type TelemetryControllerGetCoverageMetricsResponse, type TelemetryControllerReportCoverageMissData, type TelemetryControllerReportCoverageMissResponse, type TelemetryControllerReportTelemetryData, type TelemetryControllerReportTelemetryResponse, type TemplateMetadataDto, type TemplateMetadataResponseDto, type TestRuleDto, type TestRuleResponseDto, type TimeSeriesPointDto, type TransactionControllerCorrectData, type TransactionControllerCorrectResponse, type TransactionControllerCreateBatchData, type TransactionControllerCreateBatchResponse, type TransactionControllerCreateData, type TransactionControllerCreateResponse, type TransactionControllerDeleteData, type TransactionControllerDeleteResponse, type TransactionControllerGetDetailData, type TransactionControllerGetDetailResponse, type TransactionControllerListData, type TransactionControllerListResponse, type TransactionControllerSuggestTagsData, type TransactionControllerSuggestTagsResponse, type TransactionControllerUpdateData, type TransactionControllerUpdateResponse, type TransactionDetailDto, type TransactionListResponseDto, type TransactionListSummaryDto, type TransactionResponseDto, type TransactionRuleControllerBulkCreateData, type TransactionRuleControllerBulkCreateResponse, type TransactionRuleControllerCreateData, type TransactionRuleControllerCreateResponse, type TransactionRuleControllerDeleteData, type TransactionRuleControllerDeleteResponse, type TransactionRuleControllerExportData, type TransactionRuleControllerExportResponse, type TransactionRuleControllerGetDetailData, type TransactionRuleControllerGetDetailResponse, type TransactionRuleControllerGetStatisticsData, type TransactionRuleControllerGetStatisticsResponse, type TransactionRuleControllerListData, type TransactionRuleControllerListResponse, type TransactionRuleControllerTestData, type TransactionRuleControllerTestResponse, type TransactionRuleControllerUpdateData, type TransactionRuleControllerUpdateResponse, type TransactionRuleControllerValidateData, type TransactionRuleControllerValidateResponse, type TransactionRuleListResponseDto, type TransactionRuleResponseDto, type TransactionSummaryDto, type TrendSummaryDto, type UncoveredFormatMissDto, type UndoResultDto, type UpdateAccountDto, type UpdateBeanEventDto, type UpdateBeanPriceDto, type UpdateCommodityDto, type UpdateConfigDataDto, type UpdateImporterConfigDto, type UpdateMapperDefaultsDto, type UpdatePayeeDto, type UpdatePayeeProfileDto, type UpdatePlatformDto, type UpdatePropertyDto, type UpdateRecurringRuleDto, type UpdateTransactionDto, type UpdateTransactionRuleDto, type UpdateUserSettingDto, type UserControllerDeleteOwnUserData, type UserControllerDeleteOwnUserResponse, type UserControllerDeleteUserData, type UserControllerDeleteUserResponse, type UserControllerGetAllUserSettingsByPageData, type UserControllerGetAllUserSettingsByPageResponse, type UserControllerGetAssetLiabilitySummaryResponse, type UserControllerGetUserData, type UserControllerGetUserInfoData, type UserControllerGetUserInfoResponse, type UserControllerGetUserResponse, type UserControllerSignupUserData, type UserControllerSignupUserResponse, type UserControllerUpdateUserSettingData, type UserControllerUpdateUserSettingResponse, type ValidateRuleDto, type ValidateRuleResponseDto, type VersionedConfigDto, type action, type action2, type assetClass, type assetSubClass, type assetSubType, type bookingMethod, type branchType, type category, type chartToken, type colorScheme, type confidenceLevel, type conflictStrategy, type dataSource, type equitySubType, type flag, type flag2, type frequency, type importerId, type intent, type investmentAction, type learningSource, type liabilitySubType, type matchLogic, type matchType, type matchType2, type method, type mode, type paymentSource, type period, type productCategory, type provider, type role, type source, type source2, type source3, type status, type status2, type status3, type status4, type suggestedAction, type suggestedFrequency, type type, type type2, type type3, type type4, type value, type viewMode };
9923
+ export { type $OpenApiTs, type AccountControllerAddOpeningBalanceData, type AccountControllerAddOpeningBalanceResponse, type AccountControllerCloseData, type AccountControllerCloseResponse, type AccountControllerCreateData, type AccountControllerCreateResponse, type AccountControllerDeleteData, type AccountControllerDeleteResponse, type AccountControllerFindAllData, type AccountControllerFindAllResponse, type AccountControllerFindOneData, type AccountControllerFindOneResponse, type AccountControllerReopenData, type AccountControllerReopenResponse, type AccountControllerUpdateData, type AccountControllerUpdateResponse, type AccountExchangeRateWarningDto, type AccountItemDto, type AccountItemWithAssetClassDto, type AccountListResponseDto, type AccountResponseDto, type AccountStandardListResponseDto, type AccountStandardResponseDto, type AccountStandardsControllerGetRegionsData, type AccountStandardsControllerGetRegionsResponse, type AccountStandardsControllerGetTemplateMetadataData, type AccountStandardsControllerGetTemplateMetadataResponse, type AccountStandardsControllerGetTemplatesData, type AccountStandardsControllerGetTemplatesResponse, type AccountsResponseDto, type AccountsSummaryDto, type ActualBalanceDto, type AmountDto, type AmountRangeDto, type AnonymousLoginDto, type AnonymousLoginResponseDto, type ApiKeysControllerCreateApiKeyResponse, type ApiProblemResponseDto, type AssertReconciliationDto, type AssetClassAccountsResponseDto, type AssetClassGroupDto, type AssetClassSummaryDto, type AuthControllerAccessTokenLoginData, type AuthControllerAccessTokenLoginResponse, type BackfillSnapshotsBody, type BackfillSnapshotsResponse, type BalanceByCurrencyDto, type BalanceControllerGetBalanceData, type BalanceControllerGetBalanceResponse, type BalanceControllerGetMultiCurrencyBalanceData, type BalanceControllerGetMultiCurrencyBalanceResponse, type BalanceResponseDto, type BatchCreateTransactionDto, type BatchResolveDto, type BatchResolveResultDto, type BatchTransactionErrorDto, type BatchTransactionResponseDto, BeanAccountsService, BeanBalancesService, BeanCommoditiesService, BeanTransactionsService, type BulkCreateRulesDto, type BulkCreateRulesResponseDto, type CacheControllerFlushCacheResponse, type CashFlowByCurrencyDto, type CashFlowPointDto, type CashFlowResponseDto, type CashFlowTrendSummaryDto, type CashFlowTrendsResponseDto, type CategoryCatalogControllerListData, type CategoryCatalogControllerListResponse, type CategoryCatalogEntryDto, type CategoryCatalogListResponseDto, type CategoryGroupDto, type ClientParsedDataDto, type CloseAccountDto, type CommodityControllerBulkCreateData, type CommodityControllerBulkCreateResponse, type CommodityControllerCreateData, type CommodityControllerCreateResponse, type CommodityControllerDeleteData, type CommodityControllerDeleteResponse, type CommodityControllerFindAllData, type CommodityControllerFindAllResponse, type CommodityControllerFindOneData, type CommodityControllerFindOneResponse, type CommodityControllerGetOrCreateData, type CommodityControllerGetOrCreateResponse, type CommodityControllerUpdateData, type CommodityControllerUpdateResponse, type CommodityListResponseDto, type CommodityResponseDto, type ComputeReconciliationDto, type ConfirmMatchDto, type ConvertedCashFlowDto, type ConvertedNetWorthDto, type CorrectTransactionDto, type CostDetailDto, type CostSpecDto, type CreateAccountDto, type CreateBeanEventDto, type CreateBeanPriceDto, type CreateCommodityDto, type CreateExternalAccountLinkDto, type CreateOpeningBalanceDto, type CreatePayeeDto, type CreatePayeeProfileDto, type CreatePlatformDto, type CreatePostingDto, type CreateRecurringRuleDto, type CreateRuleFromTransactionDto, type CreateTransactionDto, type CreateTransactionRuleDto, type CurrencyBalanceDto, type CurrentPriceDto, type DashboardControllerGetAccountsData, type DashboardControllerGetAccountsResponse, type DashboardControllerGetCashFlowData, type DashboardControllerGetCashFlowResponse, type DashboardControllerGetExpensesData, type DashboardControllerGetExpensesResponse, type DashboardControllerGetNetWorthData, type DashboardControllerGetNetWorthResponse, type DecisionOptionDto, type DeleteOwnUserDto, type EnterNowDto, type EventControllerCreateData, type EventControllerCreateResponse, type EventControllerDeleteData, type EventControllerDeleteResponse, type EventControllerFindAllData, type EventControllerFindAllResponse, type EventControllerFindOneData, type EventControllerFindOneResponse, type EventControllerGetSliceData, type EventControllerGetSliceResponse, type EventControllerUpdateData, type EventControllerUpdateResponse, type EventListResponseDto, type EventResponseDto, type ExchangeRateControllerGetExchangeRateData, type ExchangeRateControllerGetExchangeRateResponse, type ExchangeRateWarningDto, type ExpectedTransactionControllerConfirmMatchData, type ExpectedTransactionControllerConfirmMatchResponse, type ExpectedTransactionControllerEnterNowData, type ExpectedTransactionControllerEnterNowResponse, type ExpectedTransactionControllerFindAllData, type ExpectedTransactionControllerFindAllResponse, type ExpectedTransactionControllerFindOneData, type ExpectedTransactionControllerFindOneResponse, type ExpectedTransactionControllerFindOverdueData, type ExpectedTransactionControllerFindOverdueResponse, type ExpectedTransactionControllerSkipData, type ExpectedTransactionControllerSkipResponse, type ExpectedTransactionControllerUndoSkipData, type ExpectedTransactionControllerUndoSkipResponse, type ExpectedTransactionControllerUnmatchData, type ExpectedTransactionControllerUnmatchResponse, type ExpectedTransactionDto, type ExpectedTransactionListResponseDto, type ExpectedTransactionResponseDto, type ExpectedTransactionRuleDto, type ExpensesByCategoryResponseDto, type ExpensesByCategorySummaryDto, type ExportControllerExportBeancountResponse, type ExportRulesResponseDto, type ExternalAccountLinkControllerCreateData, type ExternalAccountLinkControllerCreateResponse, type ExternalAccountLinkControllerFindAllData, type ExternalAccountLinkControllerFindAllResponse, type ExternalAccountLinkControllerFindOneData, type ExternalAccountLinkControllerFindOneResponse, type ExternalAccountLinkControllerRemoveData, type ExternalAccountLinkControllerRemoveResponse, type ExternalAccountLinkListResponseDto, type ExternalAccountLinkResponseDto, type FieldHintDto, 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 NlpAccountCandidateDto, type NlpAccountConfirmationDataDto, type NlpAlternativePayeeDto, type NlpControllerClearSessionData, type NlpControllerClearSessionResponse, type NlpControllerGetSessionData, type NlpControllerGetSessionResponse, type NlpControllerProcessNaturalLanguageData, type NlpControllerProcessNaturalLanguageResponse, type NlpDefaultAccountsDto, type NlpDuplicateConfirmationDataDto, type NlpParsedDataDto, type NlpPayeeConfirmationDataDto, type NlpResponseDto, type NlpRuleConfirmationDataDto, type NlpSimilarityDto, type NlpSourceTransactionDto, type NlpSuggestedAccountDto, type NlpSuggestedAccountsDto, type NlpSuggestedPayeeDto, type NlpTargetTransactionDto, type NlpTransactionInfoDto, type OnboardingAccountDto, type OnboardingControllerBootstrapData, type OnboardingControllerBootstrapResponse, type OnboardingDto, OpenAPI, type OpenAPIConfig, type OpeningBalanceResultDto, type PadReconciliationDto, type PadResultDto, type ParserContributionControllerCreateData, type ParserContributionControllerCreateResponse, type ParserContributionExamplesDto, type ParserContributionFieldHintsDto, type ParserContributionMetaDto, type ParserContributionRelayResponseDto, type ParserContributionRequestDto, type ParserContributionSamplesDto, 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 PlatformControllerGetPlatformListData, type PlatformControllerGetPlatformListResponse, type PlatformControllerGetPlatformStandardsData, type PlatformControllerGetPlatformStandardsResponse, type PlatformControllerMatchPlatformsData, type PlatformControllerMatchPlatformsResponse, type PlatformControllerUpdateData, type PlatformControllerUpdateResponse, type PlatformGroupDto, type PlatformListItemDto, type PlatformMatchResponseDto, type PlatformMatchResultDto, type PlatformStandardsPlatformDto, type PlatformStandardsResponseDto, type PortfolioTrendsResponseDto, type PostingDetailDto, type PostingResponseDto, type PriceControllerBulkCreateData, type PriceControllerBulkCreateResponse, type PriceControllerCreateData, type PriceControllerCreateResponse, type PriceControllerDeleteData, type PriceControllerDeleteResponse, type PriceControllerFindAllData, type PriceControllerFindAllResponse, type PriceControllerFindOneData, type PriceControllerFindOneResponse, type PriceControllerUpdateData, type PriceControllerUpdateResponse, type PriceListResponseDto, type PriceResponseDto, type ProcessNlpDto, type PropertyControllerDeleteData, type PropertyControllerDeleteResponse, type PropertyControllerGetAllResponse, type PropertyControllerGetByKeyData, type PropertyControllerGetByKeyResponse, type PropertyControllerUpdateData, type PropertyControllerUpdateResponse, type ProviderSyncConfigDto, type ProviderSyncControllerGetSupportedProvidersData, type ProviderSyncControllerGetSupportedProvidersResponse, type ProviderSyncControllerIsProviderSupportedData, type ProviderSyncControllerIsProviderSupportedResponse, type ProviderSyncControllerSyncData, type ProviderSyncControllerSyncResponse, type ProviderSyncDto, type ProviderSyncResponseDto, ProviderSyncService, type ReconciliationComputeResultDto, type ReconciliationControllerAssertData, type ReconciliationControllerAssertResponse, type ReconciliationControllerComputeData, type ReconciliationControllerComputeResponse, type ReconciliationControllerHistoryData, type ReconciliationControllerHistoryResponse, type ReconciliationControllerPadData, type ReconciliationControllerPadResponse, type ReconciliationRecordDto, type RecurringMatchInfoDto, type RecurringRuleControllerCreateData, type RecurringRuleControllerCreateFromTransactionData, type RecurringRuleControllerCreateFromTransactionResponse, type RecurringRuleControllerCreateResponse, type RecurringRuleControllerDeleteData, type RecurringRuleControllerDeleteResponse, type RecurringRuleControllerFindAllData, type RecurringRuleControllerFindAllResponse, type RecurringRuleControllerFindOneData, type RecurringRuleControllerFindOneResponse, type RecurringRuleControllerGetWithStatsData, type RecurringRuleControllerGetWithStatsResponse, type RecurringRuleControllerUpdateData, type RecurringRuleControllerUpdateResponse, type RecurringRuleResponseDto, type RecurringRuleWithStatsResponseDto, type RecurringSuggestionDto, type RegionConfigDto, type RegionInfoDto, type RegionsMetadataResponseDto, type ReopenAccountDto, type ReportingControllerBackfillSnapshotsData, type ReportingControllerBackfillSnapshotsResponse, type ReportingControllerGenerateSnapshotData, type ReportingControllerGenerateSnapshotResponse, type ReportingControllerGetCashFlowTrendsData, type ReportingControllerGetCashFlowTrendsResponse, type ReportingControllerGetPortfolioTrendsData, type ReportingControllerGetPortfolioTrendsResponse, type ResolveResultDto, type ResolveReviewDto, type ReviewControllerBatchResolveData, type ReviewControllerBatchResolveResponse, type ReviewControllerFindAllData, type ReviewControllerFindAllResponse, type ReviewControllerFindOneData, type ReviewControllerFindOneResponse, type ReviewControllerGetStatsData, type ReviewControllerGetStatsResponse, type ReviewControllerResolveData, type ReviewControllerResolveResponse, type ReviewControllerUndoData, type ReviewControllerUndoResponse, type ReviewDetailDto, type ReviewItemPreviewDto, type ReviewListResponseDto, type ReviewStatsDto, type ReviewSummaryDto, type RuleStatisticsResponseDto, type SignupDto, type SignupResponseDto, type SupportedProvidersResponseDto, type SymbolControllerGetQuoteData, type SymbolControllerGetQuoteResponse, type SymbolControllerSearchData, type SymbolControllerSearchResponse, type SymbolQuoteDto, type SymbolSearchResultDto, 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 TransactionListItemDto, type TransactionListResponseDto, type TransactionListSummaryDto, type TransactionListViewpointDto, type TransactionResponseDto, type TransactionRuleControllerBulkCreateData, type TransactionRuleControllerBulkCreateResponse, type TransactionRuleControllerCreateData, type TransactionRuleControllerCreateResponse, type TransactionRuleControllerDeleteData, type TransactionRuleControllerDeleteResponse, type TransactionRuleControllerExportData, type TransactionRuleControllerExportResponse, type TransactionRuleControllerGetDetailData, type TransactionRuleControllerGetDetailResponse, type TransactionRuleControllerGetStatisticsData, type TransactionRuleControllerGetStatisticsResponse, type TransactionRuleControllerListData, type TransactionRuleControllerListResponse, type TransactionRuleControllerTestData, type TransactionRuleControllerTestResponse, type TransactionRuleControllerUpdateData, type TransactionRuleControllerUpdateResponse, type TransactionRuleControllerValidateData, type TransactionRuleControllerValidateResponse, type TransactionRuleListResponseDto, type TransactionRuleResponseDto, type TransactionSummaryDto, type TrendSummaryDto, type UncoveredFormatMissDto, type UndoResultDto, type UpdateAccountDto, type UpdateBeanEventDto, type UpdateBeanPriceDto, type UpdateCommodityDto, type UpdateConfigDataDto, type UpdateImporterConfigDto, type UpdateMapperDefaultsDto, type UpdatePayeeDto, type UpdatePayeeProfileDto, type UpdatePlatformDto, type UpdatePropertyDto, type UpdateRecurringRuleDto, type UpdateTransactionDto, type UpdateTransactionRuleDto, type UpdateUserSettingDto, type UserControllerDeleteOwnUserData, type UserControllerDeleteOwnUserResponse, type UserControllerDeleteUserData, type UserControllerDeleteUserResponse, type UserControllerGetAllUserSettingsByPageData, type UserControllerGetAllUserSettingsByPageResponse, type UserControllerGetAssetLiabilitySummaryResponse, type UserControllerGetUserData, type UserControllerGetUserInfoData, type UserControllerGetUserInfoResponse, type UserControllerGetUserResponse, type UserControllerSignupUserData, type UserControllerSignupUserResponse, type UserControllerUpdateUserSettingData, type UserControllerUpdateUserSettingResponse, type UserResponseDto, type UserSettingsResponseDto, type ValidateRuleDto, type ValidateRuleResponseDto, type VersionedConfigDto, type accountType, type action, type action2, type assetClass, type assetSubClass, 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 flow, type format, type frequency, type importerId, type intent, type investmentAction, type learningSource, type liabilitySubType, type matchLogic, type matchType, type matchType2, type method, type mode, type paymentSource, type period, type productCategory, type provider, type region, type role, type scenario, type signConvention, type source, type source2, type source3, type status, type status2, type status3, type status4, type suggestedAction, type suggestedFrequency, type type, type type2, type type3, type type4, type type5, type value, type viewMode, type viewpointFlow };