@firela/api-types 0.0.0-canary.55cba54a → 0.0.0-canary.5864871e

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
  */
@@ -239,15 +241,27 @@ type AccountStandardResponseDto = {
239
241
  */
240
242
  type: 'Assets' | 'Liabilities' | 'Income' | 'Expenses' | 'Equity';
241
243
  /**
242
- * Short localized display name
244
+ * 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
245
  */
244
246
  name?: string;
245
247
  /**
246
- * Account description (stable semantics only)
248
+ * 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.
249
+ */
250
+ aliases?: Array<string>;
251
+ /**
252
+ * 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).
253
+ */
254
+ searchTerms?: Array<string>;
255
+ /**
256
+ * 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).
257
+ */
258
+ currency?: string;
259
+ /**
260
+ * 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
261
  */
248
262
  description: string;
249
263
  /**
250
- * Account tags for categorization
264
+ * Account tags for categorization — structured metadata delivered verbatim (not localized, not xlf-managed). ADR-0131 class A.
251
265
  */
252
266
  tags: Array<string>;
253
267
  /**
@@ -301,10 +315,17 @@ type TemplateMetadataResponseDto = {
301
315
  type RegionConfigDto = {
302
316
  currency: string;
303
317
  dateFormat: string;
318
+ /**
319
+ * 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)
320
+ */
304
321
  locale: string;
305
322
  };
306
323
  type RegionInfoDto = {
307
324
  code: string;
325
+ /**
326
+ * 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.
327
+ */
328
+ open: boolean;
308
329
  displayName: string;
309
330
  parent?: string;
310
331
  chain: Array<string>;
@@ -457,7 +478,7 @@ type PostingResponseDto = {
457
478
  */
458
479
  account: string;
459
480
  /**
460
- * Amount as decimal string. Typed optional but always present in responses: interpolation fills any MISSING posting before it is persisted or returned.
481
+ * 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
482
  */
462
483
  units?: string;
463
484
  /**
@@ -669,7 +690,7 @@ type PostingDetailDto = {
669
690
  */
670
691
  account: string;
671
692
  /**
672
- * Amount as decimal string. Typed optional but always present in responses: interpolation fills any MISSING posting before it is persisted or returned.
693
+ * 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
694
  */
674
695
  units?: string;
675
696
  /**
@@ -799,6 +820,94 @@ type flag2 = 'CLEARED' | 'PENDING' | 'PADDING' | 'SUMMARIZE' | 'TRANSFER' | 'CON
799
820
  * Transaction status
800
821
  */
801
822
  type status2 = 'ACTIVE' | 'VOIDED' | 'SUPERSEDED';
823
+ type TransactionListItemDto = {
824
+ /**
825
+ * Transaction ID
826
+ */
827
+ id: string;
828
+ /**
829
+ * Transaction date
830
+ */
831
+ date: string;
832
+ /**
833
+ * Transaction flag
834
+ */
835
+ flag?: 'CLEARED' | 'PENDING' | 'PADDING' | 'SUMMARIZE' | 'TRANSFER' | 'CONVERSIONS';
836
+ /**
837
+ * Custom flag (if not using standard flags)
838
+ */
839
+ customFlag?: string;
840
+ /**
841
+ * Payee name
842
+ */
843
+ payee?: string;
844
+ /**
845
+ * Transaction narration
846
+ */
847
+ narration: string;
848
+ /**
849
+ * Transaction tags
850
+ */
851
+ tags: Array<string>;
852
+ /**
853
+ * Transaction links
854
+ */
855
+ links: Array<string>;
856
+ /**
857
+ * Transaction metadata
858
+ */
859
+ meta?: {
860
+ [key: string]: unknown;
861
+ };
862
+ /**
863
+ * Transaction status
864
+ */
865
+ status: 'ACTIVE' | 'VOIDED' | 'SUPERSEDED';
866
+ /**
867
+ * Source type (free-form string from transaction metadata, e.g. import, api)
868
+ */
869
+ sourceType?: string;
870
+ /**
871
+ * Source platform (e.g., alipay, wechat)
872
+ */
873
+ sourcePlatform?: string;
874
+ /**
875
+ * Transaction postings
876
+ */
877
+ postings: Array<PostingDetailDto>;
878
+ /**
879
+ * Created at timestamp
880
+ */
881
+ createdAt: string;
882
+ /**
883
+ * Voided at timestamp (if voided)
884
+ */
885
+ voidedAt?: string;
886
+ /**
887
+ * User ID who voided this transaction
888
+ */
889
+ voidedBy?: string;
890
+ /**
891
+ * Correction reason (if voided or superseded)
892
+ */
893
+ correctionReason?: string;
894
+ /**
895
+ * ID of the transaction that supersedes this one (set when status=SUPERSEDED)
896
+ */
897
+ supersededBy?: string;
898
+ /**
899
+ * ID of the transaction this one corrected/replaced (back-link on the replacement)
900
+ */
901
+ originalTxn?: string;
902
+ /**
903
+ * 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.
904
+ */
905
+ viewpointAmount?: string;
906
+ /**
907
+ * Currency of viewpointAmount. A row spanning multiple currencies takes the largest-magnitude currency group (known simplification, ADR-0126).
908
+ */
909
+ viewpointCurrency?: string;
910
+ };
802
911
  type BalanceByCurrencyDto = {
803
912
  /**
804
913
  * ISO 4217 currency code
@@ -825,7 +934,7 @@ type ExchangeRateWarningDto = {
825
934
  };
826
935
  type TransactionListSummaryDto = {
827
936
  /**
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.
937
+ * 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
938
  */
830
939
  totalAmount: string;
831
940
  /**
@@ -841,11 +950,29 @@ type TransactionListSummaryDto = {
841
950
  */
842
951
  warnings?: Array<ExchangeRateWarningDto>;
843
952
  };
953
+ type TransactionListViewpointDto = {
954
+ /**
955
+ * Viewpoint type (only category drill-down carries a viewpoint today)
956
+ */
957
+ type: 'category';
958
+ /**
959
+ * Flow root the category account set is restricted to
960
+ */
961
+ flow: 'income' | 'expense';
962
+ };
963
+ /**
964
+ * Viewpoint type (only category drill-down carries a viewpoint today)
965
+ */
966
+ type type2 = 'category';
967
+ /**
968
+ * Flow root the category account set is restricted to
969
+ */
970
+ type flow = 'income' | 'expense';
844
971
  type TransactionListResponseDto = {
845
972
  /**
846
973
  * List of transactions
847
974
  */
848
- data: Array<TransactionDetailDto>;
975
+ data: Array<TransactionListItemDto>;
849
976
  /**
850
977
  * Total count of matching transactions
851
978
  */
@@ -862,6 +989,10 @@ type TransactionListResponseDto = {
862
989
  * 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
990
  */
864
991
  summary?: TransactionListSummaryDto;
992
+ /**
993
+ * 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).
994
+ */
995
+ viewpoint?: TransactionListViewpointDto;
865
996
  };
866
997
  type TagSuggestionDto = {
867
998
  /**
@@ -1054,7 +1185,7 @@ type ReviewSummaryDto = {
1054
1185
  /**
1055
1186
  * Review type
1056
1187
  */
1057
- type type2 = 'DUPLICATE' | 'RULE_MATCH' | 'PAYEE_MATCH' | 'ACCOUNT_VALIDATION' | 'PIPELINE_ERROR';
1188
+ type type3 = 'DUPLICATE' | 'RULE_MATCH' | 'PAYEE_MATCH' | 'ACCOUNT_VALIDATION' | 'PIPELINE_ERROR';
1058
1189
  /**
1059
1190
  * Review status
1060
1191
  */
@@ -1418,7 +1549,7 @@ type UpdatePayeeDto = {
1418
1549
  */
1419
1550
  customTags?: Array<string>;
1420
1551
  /**
1421
- * Metadata for extended information (location, notes, contact info, etc.). Will merge with existing metadata.
1552
+ * Metadata for extended information (location, notes, contact info, etc.)
1422
1553
  */
1423
1554
  meta?: {
1424
1555
  [key: string]: unknown;
@@ -1708,451 +1839,423 @@ type UpdateCommodityDto = {
1708
1839
  [key: string]: unknown;
1709
1840
  };
1710
1841
  };
1711
- type CreateBeanPriceDto = {
1842
+ type CurrencyBalanceDto = {
1712
1843
  /**
1713
- * Currency being priced (e.g., USD, AAPL, BTC)
1844
+ * ISO 4217 currency code
1714
1845
  */
1715
1846
  currency: string;
1716
1847
  /**
1717
- * Quote currency (pricing currency, e.g., CNY, EUR)
1848
+ * Balance amount
1718
1849
  */
1719
- quoteCurrency: string;
1850
+ balance: string;
1851
+ };
1852
+ type TimeSeriesPointDto = {
1720
1853
  /**
1721
- * Price amount (MUST be >= 0 per Beancount spec, supports up to 15 decimal places). Zero allowed for conversion entries, negative strictly prohibited.
1854
+ * Date in YYYY-MM-DD format
1722
1855
  */
1723
- amount: number;
1856
+ date: string;
1724
1857
  /**
1725
- * Price date (ISO 8601 format)
1858
+ * Value at this date (in base currency)
1726
1859
  */
1727
- date: string;
1860
+ value: string;
1728
1861
  /**
1729
- * Metadata (validated by Zod schema, max field lengths enforced)
1862
+ * Change from previous point
1730
1863
  */
1731
- metadata?: {
1732
- [key: string]: unknown;
1733
- };
1734
- };
1735
- type PriceResponseDto = {
1864
+ change?: string;
1736
1865
  /**
1737
- * Unique identifier
1866
+ * Total assets at this date (in base currency)
1738
1867
  */
1739
- id: string;
1868
+ assets?: string;
1740
1869
  /**
1741
- * User ID (owner of the price)
1870
+ * Total liabilities at this date (in base currency)
1742
1871
  */
1743
- userId: string;
1872
+ liabilities?: string;
1744
1873
  /**
1745
- * Currency being priced (e.g., USD, AAPL, BTC)
1874
+ * Multi-currency breakdown for this point
1746
1875
  */
1747
- currency: string;
1876
+ byCurrency?: Array<CurrencyBalanceDto>;
1877
+ };
1878
+ type TrendSummaryDto = {
1748
1879
  /**
1749
- * Quote currency (pricing currency, e.g., USD, CNY)
1880
+ * Value at start of period
1750
1881
  */
1751
- quoteCurrency: string;
1882
+ startValue: string;
1752
1883
  /**
1753
- * Price amount (corresponds to Beancount Amount.number). Supports up to 15 decimal places.
1884
+ * Value at end of period
1754
1885
  */
1755
- amount: number;
1886
+ endValue: string;
1756
1887
  /**
1757
- * Price date (ISO 8601 format). Represents the date this price was valid.
1888
+ * Total change over period
1758
1889
  */
1759
- date: string;
1890
+ totalChange: string;
1760
1891
  /**
1761
- * Metadata (corresponds to Beancount meta field). Contains source, confidence, note, etc.
1892
+ * Total change percentage
1762
1893
  */
1763
- meta: {
1764
- [key: string]: unknown;
1765
- };
1894
+ totalChangePercentage: string;
1895
+ };
1896
+ type MultiCurrencyPointDto = {
1766
1897
  /**
1767
- * Creation timestamp
1898
+ * Date in YYYY-MM-DD format
1768
1899
  */
1769
- createdAt: string;
1900
+ date: string;
1770
1901
  /**
1771
- * Last update timestamp
1902
+ * Balances by currency
1772
1903
  */
1773
- updatedAt: string;
1904
+ byCurrency: Array<CurrencyBalanceDto>;
1774
1905
  };
1775
- type PriceListResponseDto = {
1906
+ type PortfolioTrendsResponseDto = {
1776
1907
  /**
1777
- * List of prices
1908
+ * Time series data points
1778
1909
  */
1779
- items: Array<PriceResponseDto>;
1910
+ series: Array<TimeSeriesPointDto>;
1780
1911
  /**
1781
- * Total number of prices
1912
+ * Period summary
1782
1913
  */
1783
- total: number;
1784
- };
1785
- type UpdateBeanPriceDto = {
1914
+ summary: TrendSummaryDto;
1786
1915
  /**
1787
- * Currency being priced
1916
+ * Period requested
1788
1917
  */
1789
- currency?: string;
1918
+ period: string;
1790
1919
  /**
1791
- * Quote currency (pricing currency)
1920
+ * Data granularity
1792
1921
  */
1793
- quoteCurrency?: string;
1922
+ granularity: string;
1794
1923
  /**
1795
- * Price amount (MUST be >= 0 per Beancount spec)
1924
+ * Base currency for converted values
1796
1925
  */
1797
- amount?: number;
1926
+ currency: string;
1798
1927
  /**
1799
- * Price date (ISO 8601 format)
1928
+ * Multi-currency time series (each point has currency breakdown)
1800
1929
  */
1801
- date?: string;
1930
+ byCurrency?: Array<MultiCurrencyPointDto>;
1802
1931
  /**
1803
- * Metadata
1932
+ * Exchange rate warnings
1804
1933
  */
1805
- metadata?: {
1806
- [key: string]: unknown;
1807
- };
1934
+ warnings?: Array<ExchangeRateWarningDto>;
1808
1935
  };
1809
- type CreateRecurringRuleDto = {
1936
+ type CashFlowPointDto = {
1810
1937
  /**
1811
- * Rule name (unique per user)
1938
+ * Month key (YYYY-MM)
1812
1939
  */
1813
- name: string;
1940
+ month: string;
1814
1941
  /**
1815
- * Icon emoji
1942
+ * Income in base currency (absolute, converted)
1816
1943
  */
1817
- icon?: string;
1944
+ income: string;
1818
1945
  /**
1819
- * Recurring frequency
1946
+ * Expense in base currency (absolute, converted)
1820
1947
  */
1821
- frequency: 'WEEKLY' | 'BIWEEKLY' | 'MONTHLY' | 'BIMONTHLY' | 'QUARTERLY' | 'YEARLY' | 'CUSTOM';
1948
+ expense: string;
1822
1949
  /**
1823
- * Expected amount (positive number)
1950
+ * netSavings = income − expense (savings positive)
1824
1951
  */
1825
- expectedAmount: number;
1952
+ netSavings: string;
1953
+ };
1954
+ type CashFlowTrendSummaryDto = {
1826
1955
  /**
1827
- * Expected day of month (1-31)
1956
+ * Total income across the period
1828
1957
  */
1829
- expectedDay?: number;
1958
+ totalIncome: string;
1830
1959
  /**
1831
- * Custom interval in days (required for CUSTOM frequency)
1960
+ * Total expense across the period
1832
1961
  */
1833
- customIntervalDays?: number;
1962
+ totalExpense: string;
1834
1963
  /**
1835
- * Currency code
1964
+ * income − expense across the period
1836
1965
  */
1837
- currency: string;
1966
+ totalNetSavings: string;
1838
1967
  /**
1839
- * Payee matching pattern (supports wildcards)
1968
+ * totalNetSavings divided by the window length (N months, incl. zero-filled)
1840
1969
  */
1841
- matchPayeePattern?: string;
1970
+ averageMonthlyNetSavings: string;
1971
+ };
1972
+ type CashFlowTrendsResponseDto = {
1842
1973
  /**
1843
- * Amount tolerance percentage (0-1)
1974
+ * Monthly cash-flow series (fixed N-month window, zero-filled)
1844
1975
  */
1845
- matchAmountTolerance: number;
1976
+ series: Array<CashFlowPointDto>;
1846
1977
  /**
1847
- * Default expense account for auto-create
1978
+ * Period totals
1848
1979
  */
1849
- defaultExpenseAccount?: string;
1980
+ summary: CashFlowTrendSummaryDto;
1850
1981
  /**
1851
- * Default payment account for auto-create
1982
+ * Period requested
1852
1983
  */
1853
- defaultPaymentAccount?: string;
1984
+ period: string;
1854
1985
  /**
1855
- * Default payee for auto-create
1986
+ * Data granularity (v1 returns month buckets)
1856
1987
  */
1857
- defaultPayee?: string;
1988
+ granularity: string;
1858
1989
  /**
1859
- * Auto-create transaction when expected date arrives
1990
+ * Base currency for converted values
1860
1991
  */
1861
- autoCreate: boolean;
1992
+ currency: string;
1862
1993
  /**
1863
- * Rule start date (ISO format)
1994
+ * Exchange rate warnings (e.g. missing rate for a currency)
1864
1995
  */
1865
- startDate?: string;
1996
+ warnings?: Array<ExchangeRateWarningDto>;
1997
+ };
1998
+ type GenerateSnapshotBody = unknown;
1999
+ type GenerateSnapshotResponse = unknown;
2000
+ type BackfillSnapshotsBody = unknown;
2001
+ type BackfillSnapshotsResponse = unknown;
2002
+ type CreateBeanPriceDto = {
1866
2003
  /**
1867
- * Rule end date (ISO format)
2004
+ * Currency being priced (e.g., USD, AAPL, BTC)
1868
2005
  */
1869
- endDate?: string;
1870
- };
1871
- /**
1872
- * Recurring frequency
1873
- */
1874
- type frequency = 'WEEKLY' | 'BIWEEKLY' | 'MONTHLY' | 'BIMONTHLY' | 'QUARTERLY' | 'YEARLY' | 'CUSTOM';
1875
- type RecurringRuleResponseDto = {
2006
+ currency: string;
1876
2007
  /**
1877
- * Rule ID
2008
+ * Quote currency (pricing currency, e.g., CNY, EUR)
1878
2009
  */
1879
- id: string;
2010
+ quoteCurrency: string;
1880
2011
  /**
1881
- * User ID
2012
+ * Price amount (MUST be >= 0 per Beancount spec, supports up to 15 decimal places). Zero allowed for conversion entries, negative strictly prohibited.
1882
2013
  */
1883
- userId: string;
2014
+ amount: number;
1884
2015
  /**
1885
- * Rule name
2016
+ * Price date (ISO 8601 format)
1886
2017
  */
1887
- name: string;
2018
+ date: string;
1888
2019
  /**
1889
- * Icon emoji
2020
+ * Metadata (validated by Zod schema, max field lengths enforced)
1890
2021
  */
1891
- icon?: {
2022
+ metadata?: {
1892
2023
  [key: string]: unknown;
1893
2024
  };
2025
+ };
2026
+ type PriceResponseDto = {
1894
2027
  /**
1895
- * Recurring frequency
2028
+ * Unique identifier
1896
2029
  */
1897
- frequency: string;
2030
+ id: string;
1898
2031
  /**
1899
- * Expected amount
2032
+ * User ID (owner of the price)
1900
2033
  */
1901
- expectedAmount: number;
2034
+ userId: string;
1902
2035
  /**
1903
- * Expected day of month
2036
+ * Currency being priced (e.g., USD, AAPL, BTC)
1904
2037
  */
1905
- expectedDay?: {
1906
- [key: string]: unknown;
1907
- };
2038
+ currency: string;
1908
2039
  /**
1909
- * Custom interval in days
2040
+ * Quote currency (pricing currency, e.g., USD, CNY)
1910
2041
  */
1911
- customIntervalDays?: {
1912
- [key: string]: unknown;
1913
- };
2042
+ quoteCurrency: string;
1914
2043
  /**
1915
- * Currency code
2044
+ * Price amount (corresponds to Beancount Amount.number). Supports up to 15 decimal places.
1916
2045
  */
1917
- currency: string;
2046
+ amount: number;
1918
2047
  /**
1919
- * Payee matching pattern
2048
+ * Price date (ISO 8601 format). Represents the date this price was valid.
2049
+ */
2050
+ date: string;
2051
+ /**
2052
+ * Metadata (corresponds to Beancount meta field). Contains source, confidence, note, etc.
1920
2053
  */
1921
- matchPayeePattern?: {
2054
+ meta: {
1922
2055
  [key: string]: unknown;
1923
2056
  };
1924
2057
  /**
1925
- * Amount tolerance percentage
2058
+ * Creation timestamp
1926
2059
  */
1927
- matchAmountTolerance: number;
2060
+ createdAt: string;
1928
2061
  /**
1929
- * Default expense account
2062
+ * Last update timestamp
1930
2063
  */
1931
- defaultExpenseAccount?: {
1932
- [key: string]: unknown;
1933
- };
2064
+ updatedAt: string;
2065
+ };
2066
+ type PriceListResponseDto = {
1934
2067
  /**
1935
- * Default payment account
2068
+ * List of prices
1936
2069
  */
1937
- defaultPaymentAccount?: {
1938
- [key: string]: unknown;
1939
- };
2070
+ items: Array<PriceResponseDto>;
1940
2071
  /**
1941
- * Default payee
2072
+ * Total number of prices
1942
2073
  */
1943
- defaultPayee?: {
1944
- [key: string]: unknown;
1945
- };
2074
+ total: number;
2075
+ };
2076
+ type UpdateBeanPriceDto = {
1946
2077
  /**
1947
- * Whether rule is active
2078
+ * Currency being priced
1948
2079
  */
1949
- isActive: boolean;
2080
+ currency?: string;
1950
2081
  /**
1951
- * Rule start date (YYYY-MM-DD)
2082
+ * Quote currency (pricing currency)
1952
2083
  */
1953
- startDate: string;
2084
+ quoteCurrency?: string;
1954
2085
  /**
1955
- * Rule end date (YYYY-MM-DD)
2086
+ * Price amount (MUST be >= 0 per Beancount spec)
1956
2087
  */
1957
- endDate?: {
1958
- [key: string]: unknown;
1959
- };
2088
+ amount?: number;
1960
2089
  /**
1961
- * Auto-create transaction on expected date
2090
+ * Price date (ISO 8601 format)
1962
2091
  */
1963
- autoCreate: boolean;
2092
+ date?: string;
1964
2093
  /**
1965
- * Last matched occurrence date (YYYY-MM-DD)
2094
+ * Metadata
1966
2095
  */
1967
- lastOccurrence?: {
2096
+ metadata?: {
1968
2097
  [key: string]: unknown;
1969
2098
  };
2099
+ };
2100
+ type DeleteOwnUserDto = {
1970
2101
  /**
1971
- * Total matched transactions count
2102
+ * Access token for user verification
1972
2103
  */
1973
- totalCount: number;
2104
+ accessToken: string;
2105
+ };
2106
+ type UserSettingsResponseDto = {
1974
2107
  /**
1975
- * Created at timestamp
2108
+ * 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
2109
  */
1977
- createdAt: string;
2110
+ baseCurrency: string | null;
2111
+ };
2112
+ type UserResponseDto = {
1978
2113
  /**
1979
- * Updated at timestamp
2114
+ * User ID
1980
2115
  */
1981
- updatedAt: string;
1982
- };
1983
- type CreateRuleFromTransactionDto = {
2116
+ id: string;
1984
2117
  /**
1985
- * Recurring frequency
2118
+ * Assigned user role
1986
2119
  */
1987
- frequency: 'WEEKLY' | 'BIWEEKLY' | 'MONTHLY' | 'BIMONTHLY' | 'QUARTERLY' | 'YEARLY' | 'CUSTOM';
2120
+ role: string;
1988
2121
  /**
1989
- * Optional name override (default: transaction payee)
2122
+ * Permission strings
1990
2123
  */
1991
- name?: string;
2124
+ permissions: Array<string>;
1992
2125
  /**
1993
- * Optional icon emoji
2126
+ * User settings
1994
2127
  */
1995
- icon?: string;
2128
+ settings: UserSettingsResponseDto;
1996
2129
  };
1997
- type RecurringRuleWithStatsResponseDto = {
2130
+ type SignupDto = {
1998
2131
  /**
1999
- * Rule ID
2132
+ * Cloudflare Turnstile verification token (optional when Turnstile disabled)
2000
2133
  */
2001
- id: string;
2134
+ turnstileToken?: string;
2135
+ };
2136
+ type SignupResponseDto = {
2002
2137
  /**
2003
- * User ID
2138
+ * JWT auth token
2004
2139
  */
2005
- userId: string;
2140
+ authToken: string;
2006
2141
  /**
2007
- * Rule name
2142
+ * Auto-generated access token
2008
2143
  */
2009
- name: string;
2144
+ accessToken: string;
2010
2145
  /**
2011
- * Icon emoji
2146
+ * Assigned user role
2012
2147
  */
2013
- icon?: {
2014
- [key: string]: unknown;
2015
- };
2148
+ role: 'USER' | 'ADMIN' | 'DEMO' | 'INACTIVE' | 'PAID' | 'OPS';
2149
+ };
2150
+ /**
2151
+ * Assigned user role
2152
+ */
2153
+ type role = 'USER' | 'ADMIN' | 'DEMO' | 'INACTIVE' | 'PAID' | 'OPS';
2154
+ type UpdateUserSettingDto = {
2016
2155
  /**
2017
- * Recurring frequency
2156
+ * Security ID
2018
2157
  */
2019
- frequency: string;
2158
+ secId?: number;
2020
2159
  /**
2021
- * Expected amount
2160
+ * Annual interest rate
2022
2161
  */
2023
- expectedAmount: number;
2162
+ annualInterestRate?: number;
2024
2163
  /**
2025
- * Expected day of month
2164
+ * Currency code
2026
2165
  */
2027
- expectedDay?: {
2028
- [key: string]: unknown;
2029
- };
2166
+ currency?: string;
2030
2167
  /**
2031
- * Custom interval in days
2168
+ * Base currency code
2032
2169
  */
2033
- customIntervalDays?: {
2034
- [key: string]: unknown;
2035
- };
2170
+ baseCurrency?: string;
2036
2171
  /**
2037
- * Currency code
2172
+ * Benchmark symbol
2038
2173
  */
2039
- currency: string;
2174
+ benchmark?: string;
2040
2175
  /**
2041
- * Payee matching pattern
2176
+ * Color scheme
2042
2177
  */
2043
- matchPayeePattern?: {
2044
- [key: string]: unknown;
2045
- };
2178
+ colorScheme?: 'DARK' | 'LIGHT';
2046
2179
  /**
2047
- * Amount tolerance percentage
2180
+ * Date range filter
2048
2181
  */
2049
- matchAmountTolerance: number;
2182
+ dateRange?: string;
2050
2183
  /**
2051
- * Default expense account
2184
+ * Emergency fund amount
2052
2185
  */
2053
- defaultExpenseAccount?: {
2054
- [key: string]: unknown;
2055
- };
2186
+ emergencyFund?: number;
2056
2187
  /**
2057
- * Default payment account
2188
+ * Account filter IDs
2058
2189
  */
2059
- defaultPaymentAccount?: {
2060
- [key: string]: unknown;
2061
- };
2190
+ 'filters.accounts'?: Array<string>;
2062
2191
  /**
2063
- * Default payee
2192
+ * Asset class filters
2064
2193
  */
2065
- defaultPayee?: {
2066
- [key: string]: unknown;
2067
- };
2194
+ 'filters.assetClasses'?: Array<string>;
2068
2195
  /**
2069
- * Whether rule is active
2196
+ * Data source filter
2070
2197
  */
2071
- isActive: boolean;
2198
+ 'filters.dataSource'?: string;
2072
2199
  /**
2073
- * Rule start date (YYYY-MM-DD)
2200
+ * Symbol filter
2074
2201
  */
2075
- startDate: string;
2202
+ 'filters.symbol'?: string;
2076
2203
  /**
2077
- * Rule end date (YYYY-MM-DD)
2204
+ * Tag filters
2078
2205
  */
2079
- endDate?: {
2080
- [key: string]: unknown;
2081
- };
2206
+ 'filters.tags'?: Array<string>;
2082
2207
  /**
2083
- * Auto-create transaction on expected date
2208
+ * Enable experimental features
2084
2209
  */
2085
- autoCreate: boolean;
2210
+ isExperimentalFeatures?: boolean;
2086
2211
  /**
2087
- * Last matched occurrence date (YYYY-MM-DD)
2212
+ * Enable restricted view mode
2088
2213
  */
2089
- lastOccurrence?: {
2090
- [key: string]: unknown;
2091
- };
2214
+ isRestrictedView?: boolean;
2092
2215
  /**
2093
- * Total matched transactions count
2216
+ * Language code
2094
2217
  */
2095
- totalCount: number;
2218
+ language?: string;
2096
2219
  /**
2097
- * Created at timestamp
2220
+ * Locale code
2098
2221
  */
2099
- createdAt: string;
2222
+ locale?: string;
2100
2223
  /**
2101
- * Updated at timestamp
2224
+ * Projected total amount
2102
2225
  */
2103
- updatedAt: string;
2226
+ projectedTotalAmount?: number;
2104
2227
  /**
2105
- * Number of pending expected transactions
2228
+ * Retirement date in ISO 8601 format
2106
2229
  */
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)
2132
- */
2133
- firstDate?: {
2134
- [key: string]: unknown;
2135
- };
2230
+ retirementDate?: string;
2136
2231
  /**
2137
- * Last matched transaction date (YYYY-MM-DD)
2232
+ * Savings rate percentage
2138
2233
  */
2139
- lastDate?: {
2140
- [key: string]: unknown;
2141
- };
2234
+ savingsRate?: number;
2142
2235
  /**
2143
- * Amount variance (standard deviation squared)
2236
+ * View mode
2144
2237
  */
2145
- variance: number;
2238
+ viewMode?: 'DEFAULT' | 'ZEN';
2239
+ };
2240
+ /**
2241
+ * Color scheme
2242
+ */
2243
+ type colorScheme = 'DARK' | 'LIGHT';
2244
+ /**
2245
+ * View mode
2246
+ */
2247
+ type viewMode = 'DEFAULT' | 'ZEN';
2248
+ type UpdatePropertyDto = {
2146
2249
  /**
2147
- * Number of upcoming expected transactions
2250
+ * Property value
2148
2251
  */
2149
- upcomingCount: number;
2252
+ value: string;
2150
2253
  };
2151
- type UpdateRecurringRuleDto = {
2254
+ type CreateRecurringRuleDto = {
2152
2255
  /**
2153
- * Rule name
2256
+ * Rule name (unique per user)
2154
2257
  */
2155
- name?: string;
2258
+ name: string;
2156
2259
  /**
2157
2260
  * Icon emoji
2158
2261
  */
@@ -2160,17 +2263,17 @@ type UpdateRecurringRuleDto = {
2160
2263
  /**
2161
2264
  * Recurring frequency
2162
2265
  */
2163
- frequency?: 'WEEKLY' | 'BIWEEKLY' | 'MONTHLY' | 'BIMONTHLY' | 'QUARTERLY' | 'YEARLY' | 'CUSTOM';
2266
+ frequency: 'WEEKLY' | 'BIWEEKLY' | 'MONTHLY' | 'BIMONTHLY' | 'QUARTERLY' | 'YEARLY' | 'CUSTOM';
2164
2267
  /**
2165
- * Expected amount
2268
+ * Expected amount (positive number)
2166
2269
  */
2167
- expectedAmount?: number;
2270
+ expectedAmount: number;
2168
2271
  /**
2169
2272
  * Expected day of month (1-31)
2170
2273
  */
2171
2274
  expectedDay?: number;
2172
2275
  /**
2173
- * Custom interval in days
2276
+ * Custom interval in days (required for CUSTOM frequency)
2174
2277
  */
2175
2278
  customIntervalDays?: number;
2176
2279
  /**
@@ -2178,109 +2281,123 @@ type UpdateRecurringRuleDto = {
2178
2281
  */
2179
2282
  currency?: string;
2180
2283
  /**
2181
- * Payee matching pattern
2284
+ * Payee matching pattern (supports wildcards)
2182
2285
  */
2183
2286
  matchPayeePattern?: string;
2184
2287
  /**
2185
2288
  * Amount tolerance percentage (0-1)
2186
2289
  */
2187
- matchAmountTolerance?: number;
2290
+ matchAmountTolerance: number;
2188
2291
  /**
2189
- * Default expense account
2292
+ * Default expense account for auto-create
2190
2293
  */
2191
2294
  defaultExpenseAccount?: string;
2192
2295
  /**
2193
- * Default payment account
2296
+ * Default payment account for auto-create
2194
2297
  */
2195
2298
  defaultPaymentAccount?: string;
2196
2299
  /**
2197
- * Default payee
2300
+ * Default payee for auto-create
2198
2301
  */
2199
2302
  defaultPayee?: string;
2200
2303
  /**
2201
- * Auto-create transaction
2304
+ * Auto-create transaction when expected date arrives
2202
2305
  */
2203
- autoCreate?: boolean;
2306
+ autoCreate: boolean;
2204
2307
  /**
2205
- * Rule active status
2308
+ * Rule start date (ISO format)
2206
2309
  */
2207
- isActive?: boolean;
2310
+ startDate?: string;
2208
2311
  /**
2209
2312
  * Rule end date (ISO format)
2210
2313
  */
2211
2314
  endDate?: string;
2212
2315
  };
2213
- type ExpectedTransactionRuleDto = {
2316
+ /**
2317
+ * Recurring frequency
2318
+ */
2319
+ type frequency = 'WEEKLY' | 'BIWEEKLY' | 'MONTHLY' | 'BIMONTHLY' | 'QUARTERLY' | 'YEARLY' | 'CUSTOM';
2320
+ type RecurringRuleResponseDto = {
2321
+ /**
2322
+ * Rule ID
2323
+ */
2324
+ id: string;
2325
+ /**
2326
+ * User ID
2327
+ */
2328
+ userId: string;
2214
2329
  /**
2215
2330
  * Rule name
2216
2331
  */
2217
2332
  name: string;
2218
2333
  /**
2219
- * Rule icon
2334
+ * Icon emoji
2220
2335
  */
2221
- icon?: {
2222
- [key: string]: unknown;
2223
- };
2336
+ icon?: string;
2224
2337
  /**
2225
- * Rule frequency
2338
+ * Recurring frequency
2226
2339
  */
2227
2340
  frequency: string;
2341
+ /**
2342
+ * Expected amount
2343
+ */
2344
+ expectedAmount: number;
2345
+ /**
2346
+ * Expected day of month
2347
+ */
2348
+ expectedDay?: number;
2349
+ /**
2350
+ * Custom interval in days
2351
+ */
2352
+ customIntervalDays?: number;
2228
2353
  /**
2229
2354
  * Currency code
2230
2355
  */
2231
2356
  currency: string;
2232
- };
2233
- type ExpectedTransactionResponseDto = {
2234
2357
  /**
2235
- * Expected transaction ID
2358
+ * Payee matching pattern
2236
2359
  */
2237
- id: string;
2360
+ matchPayeePattern?: string;
2238
2361
  /**
2239
- * User ID
2362
+ * Amount tolerance percentage
2240
2363
  */
2241
- userId: string;
2364
+ matchAmountTolerance: number;
2242
2365
  /**
2243
- * Associated rule ID
2366
+ * Default expense account
2244
2367
  */
2245
- ruleId: string;
2368
+ defaultExpenseAccount?: string;
2246
2369
  /**
2247
- * Expected date (YYYY-MM-DD)
2370
+ * Default payment account
2248
2371
  */
2249
- expectedDate: string;
2372
+ defaultPaymentAccount?: string;
2250
2373
  /**
2251
- * Expected amount
2374
+ * Default payee
2252
2375
  */
2253
- expectedAmount: number;
2376
+ defaultPayee?: string;
2254
2377
  /**
2255
- * Status (PENDING, COMPLETED, SKIPPED)
2378
+ * Whether rule is active
2256
2379
  */
2257
- status: string;
2380
+ isActive: boolean;
2258
2381
  /**
2259
- * Matched transaction ID
2382
+ * Rule start date (YYYY-MM-DD)
2260
2383
  */
2261
- matchedTransactionId?: {
2262
- [key: string]: unknown;
2263
- };
2384
+ startDate: string;
2264
2385
  /**
2265
- * Match timestamp (ISO 8601)
2386
+ * Rule end date (YYYY-MM-DD)
2266
2387
  */
2267
- matchedAt?: {
2268
- [key: string]: unknown;
2269
- };
2388
+ endDate?: string;
2270
2389
  /**
2271
- * Match confidence score (0-1)
2390
+ * Auto-create transaction on expected date
2272
2391
  */
2273
- matchConfidence?: {
2274
- [key: string]: unknown;
2275
- };
2392
+ autoCreate: boolean;
2276
2393
  /**
2277
- * Whether this expected transaction is overdue
2394
+ * Last matched occurrence date (YYYY-MM-DD)
2278
2395
  */
2279
- isOverdue: boolean;
2396
+ lastOccurrence?: string;
2280
2397
  /**
2281
- * Rule information
2398
+ * Total matched transactions count
2282
2399
  */
2283
- rule: ExpectedTransactionRuleDto;
2400
+ totalCount: number;
2284
2401
  /**
2285
2402
  * Created at timestamp
2286
2403
  */
@@ -2290,410 +2407,396 @@ type ExpectedTransactionResponseDto = {
2290
2407
  */
2291
2408
  updatedAt: string;
2292
2409
  };
2293
- type ExpectedTransactionListResponseDto = {
2294
- items: Array<ExpectedTransactionResponseDto>;
2295
- /**
2296
- * Total count
2297
- */
2298
- total: number;
2299
- };
2300
- type ConfirmMatchDto = {
2410
+ type CreateRuleFromTransactionDto = {
2301
2411
  /**
2302
- * Transaction ID to match with
2412
+ * Recurring frequency
2303
2413
  */
2304
- transactionId: string;
2305
- };
2306
- type EnterNowDto = {
2414
+ frequency: 'WEEKLY' | 'BIWEEKLY' | 'MONTHLY' | 'BIMONTHLY' | 'QUARTERLY' | 'YEARLY' | 'CUSTOM';
2307
2415
  /**
2308
- * Override expense account (uses rule default if not provided)
2416
+ * Optional name override (default: transaction payee)
2309
2417
  */
2310
- expenseAccount?: string;
2418
+ name?: string;
2311
2419
  /**
2312
- * Override payment account (uses rule default if not provided)
2420
+ * Optional icon emoji
2313
2421
  */
2314
- paymentAccount?: string;
2422
+ icon?: string;
2423
+ };
2424
+ type RecurringRuleWithStatsResponseDto = {
2315
2425
  /**
2316
- * Override amount (uses expected amount if not provided)
2426
+ * Rule ID
2317
2427
  */
2318
- amount?: number;
2428
+ id: string;
2319
2429
  /**
2320
- * Override payee (uses rule default if not provided)
2430
+ * User ID
2321
2431
  */
2322
- payee?: string;
2432
+ userId: string;
2323
2433
  /**
2324
- * Optional narration
2434
+ * Rule name
2325
2435
  */
2326
- narration?: string;
2327
- };
2328
- type ForecastItemDto = {
2436
+ name: string;
2329
2437
  /**
2330
- * Rule name
2438
+ * Icon emoji
2331
2439
  */
2332
- rule: string;
2440
+ icon?: string;
2333
2441
  /**
2334
- * Rule ID
2442
+ * Recurring frequency
2335
2443
  */
2336
- ruleId: string;
2444
+ frequency: string;
2337
2445
  /**
2338
2446
  * Expected amount
2339
2447
  */
2340
- amount: number;
2448
+ expectedAmount: number;
2341
2449
  /**
2342
- * Expected date (YYYY-MM-DD)
2450
+ * Expected day of month
2343
2451
  */
2344
- date: string;
2452
+ expectedDay?: number;
2345
2453
  /**
2346
- * Rule icon emoji
2454
+ * Custom interval in days
2347
2455
  */
2348
- icon: string | null;
2456
+ customIntervalDays?: number;
2349
2457
  /**
2350
2458
  * Currency code
2351
2459
  */
2352
2460
  currency: string;
2353
- };
2354
- type MonthlyForecastDto = {
2355
2461
  /**
2356
- * Month (YYYY-MM)
2462
+ * Payee matching pattern
2357
2463
  */
2358
- month: string;
2464
+ matchPayeePattern?: string;
2359
2465
  /**
2360
- * Total expected outflow for the month
2466
+ * Amount tolerance percentage
2361
2467
  */
2362
- expectedOutflow: number;
2468
+ matchAmountTolerance: number;
2363
2469
  /**
2364
- * Number of expected transactions
2470
+ * Default expense account
2365
2471
  */
2366
- itemCount: number;
2472
+ defaultExpenseAccount?: string;
2367
2473
  /**
2368
- * Breakdown by currency
2474
+ * Default payment account
2369
2475
  */
2370
- byCurrency: {
2371
- [key: string]: unknown;
2372
- };
2476
+ defaultPaymentAccount?: string;
2373
2477
  /**
2374
- * Individual forecast items
2478
+ * Default payee
2375
2479
  */
2376
- items: Array<ForecastItemDto>;
2377
- };
2378
- type ForecastResponseDto = {
2480
+ defaultPayee?: string;
2379
2481
  /**
2380
- * Monthly forecast data
2482
+ * Whether rule is active
2381
2483
  */
2382
- forecast: Array<MonthlyForecastDto>;
2484
+ isActive: boolean;
2383
2485
  /**
2384
- * Total expected outflow across all months
2486
+ * Rule start date (YYYY-MM-DD)
2385
2487
  */
2386
- totalOutflow: number;
2488
+ startDate: string;
2387
2489
  /**
2388
- * Total by currency across all months
2490
+ * Rule end date (YYYY-MM-DD)
2389
2491
  */
2390
- totalByCurrency: {
2391
- [key: string]: unknown;
2392
- };
2492
+ endDate?: string;
2393
2493
  /**
2394
- * Number of active recurring rules included
2494
+ * Auto-create transaction on expected date
2395
2495
  */
2396
- rulesCount: number;
2496
+ autoCreate: boolean;
2397
2497
  /**
2398
- * Forecast period start date
2498
+ * Last matched occurrence date (YYYY-MM-DD)
2399
2499
  */
2400
- periodStart: string;
2500
+ lastOccurrence?: string;
2401
2501
  /**
2402
- * Forecast period end date
2502
+ * Total matched transactions count
2403
2503
  */
2404
- periodEnd: string;
2405
- };
2406
- type CurrencyBalanceDto = {
2504
+ totalCount: number;
2407
2505
  /**
2408
- * ISO 4217 currency code
2506
+ * Created at timestamp
2409
2507
  */
2410
- currency: string;
2508
+ createdAt: string;
2411
2509
  /**
2412
- * Balance amount
2510
+ * Updated at timestamp
2413
2511
  */
2414
- balance: string;
2415
- };
2416
- type TimeSeriesPointDto = {
2512
+ updatedAt: string;
2417
2513
  /**
2418
- * Date in YYYY-MM-DD format
2514
+ * Number of pending expected transactions
2419
2515
  */
2420
- date: string;
2516
+ pendingCount: number;
2421
2517
  /**
2422
- * Value at this date (in base currency)
2518
+ * Number of overdue expected transactions
2423
2519
  */
2424
- value: string;
2520
+ overdueCount: number;
2425
2521
  /**
2426
- * Change from previous point
2522
+ * Next expected date (YYYY-MM-DD)
2427
2523
  */
2428
- change?: {
2429
- [key: string]: unknown;
2430
- };
2524
+ nextExpectedDate?: string;
2431
2525
  /**
2432
- * Total assets at this date (in base currency)
2526
+ * Total amount of all matched transactions
2433
2527
  */
2434
- assets?: string;
2528
+ totalAmount: number;
2435
2529
  /**
2436
- * Total liabilities at this date (in base currency)
2530
+ * Average amount per transaction
2437
2531
  */
2438
- liabilities?: string;
2532
+ averageAmount: number;
2439
2533
  /**
2440
- * Multi-currency breakdown for this point
2534
+ * Number of matched transactions
2441
2535
  */
2442
- byCurrency?: Array<CurrencyBalanceDto>;
2443
- };
2444
- type TrendSummaryDto = {
2536
+ transactionCount: number;
2445
2537
  /**
2446
- * Value at start of period
2538
+ * First matched transaction date (YYYY-MM-DD)
2447
2539
  */
2448
- startValue: string;
2540
+ firstDate?: string;
2449
2541
  /**
2450
- * Value at end of period
2542
+ * Last matched transaction date (YYYY-MM-DD)
2451
2543
  */
2452
- endValue: string;
2544
+ lastDate?: string;
2453
2545
  /**
2454
- * Total change over period
2546
+ * Amount variance (standard deviation squared)
2455
2547
  */
2456
- totalChange: string;
2548
+ variance: number;
2457
2549
  /**
2458
- * Total change percentage
2550
+ * Number of upcoming expected transactions
2459
2551
  */
2460
- totalChangePercentage: string;
2552
+ upcomingCount: number;
2461
2553
  };
2462
- type MultiCurrencyPointDto = {
2554
+ type UpdateRecurringRuleDto = {
2463
2555
  /**
2464
- * Date in YYYY-MM-DD format
2556
+ * Rule name (unique per user)
2465
2557
  */
2466
- date: string;
2558
+ name?: string;
2467
2559
  /**
2468
- * Balances by currency
2560
+ * Icon emoji
2469
2561
  */
2470
- byCurrency: Array<CurrencyBalanceDto>;
2471
- };
2472
- type PortfolioTrendsResponseDto = {
2562
+ icon?: string;
2473
2563
  /**
2474
- * Time series data points
2564
+ * Recurring frequency
2475
2565
  */
2476
- series: Array<TimeSeriesPointDto>;
2566
+ frequency?: 'WEEKLY' | 'BIWEEKLY' | 'MONTHLY' | 'BIMONTHLY' | 'QUARTERLY' | 'YEARLY' | 'CUSTOM';
2477
2567
  /**
2478
- * Period summary
2568
+ * Expected amount (positive number)
2479
2569
  */
2480
- summary: TrendSummaryDto;
2570
+ expectedAmount?: number;
2481
2571
  /**
2482
- * Period requested
2572
+ * Expected day of month (1-31)
2483
2573
  */
2484
- period: string;
2574
+ expectedDay?: number;
2485
2575
  /**
2486
- * Data granularity
2576
+ * Currency code
2487
2577
  */
2488
- granularity: string;
2578
+ currency?: string;
2489
2579
  /**
2490
- * Base currency for converted values
2580
+ * Payee matching pattern (supports wildcards)
2491
2581
  */
2492
- currency: string;
2582
+ matchPayeePattern?: string;
2493
2583
  /**
2494
- * Multi-currency time series (each point has currency breakdown)
2584
+ * Amount tolerance percentage (0-1)
2495
2585
  */
2496
- byCurrency?: Array<MultiCurrencyPointDto>;
2586
+ matchAmountTolerance?: number;
2497
2587
  /**
2498
- * Exchange rate warnings
2588
+ * Default expense account for auto-create
2499
2589
  */
2500
- warnings?: Array<ExchangeRateWarningDto>;
2501
- };
2502
- type CashFlowPointDto = {
2590
+ defaultExpenseAccount?: string;
2503
2591
  /**
2504
- * Month key (YYYY-MM)
2592
+ * Default payment account for auto-create
2505
2593
  */
2506
- month: string;
2594
+ defaultPaymentAccount?: string;
2507
2595
  /**
2508
- * Income in base currency (absolute, converted)
2596
+ * Default payee for auto-create
2509
2597
  */
2510
- income: string;
2598
+ defaultPayee?: string;
2511
2599
  /**
2512
- * Expense in base currency (absolute, converted)
2600
+ * Auto-create transaction when expected date arrives
2513
2601
  */
2514
- expense: string;
2602
+ autoCreate?: boolean;
2515
2603
  /**
2516
- * netSavings = income − expense (savings positive)
2604
+ * Rule end date (ISO format)
2517
2605
  */
2518
- netSavings: string;
2606
+ endDate?: string;
2607
+ /**
2608
+ * Custom interval in days
2609
+ */
2610
+ customIntervalDays?: number;
2611
+ /**
2612
+ * Rule active status
2613
+ */
2614
+ isActive?: boolean;
2519
2615
  };
2520
- type CashFlowTrendSummaryDto = {
2616
+ type ExpectedTransactionRuleDto = {
2521
2617
  /**
2522
- * Total income across the period
2618
+ * Rule name
2523
2619
  */
2524
- totalIncome: string;
2620
+ name: string;
2525
2621
  /**
2526
- * Total expense across the period
2622
+ * Rule icon
2527
2623
  */
2528
- totalExpense: string;
2624
+ icon?: string;
2529
2625
  /**
2530
- * income − expense across the period
2626
+ * Rule frequency
2531
2627
  */
2532
- totalNetSavings: string;
2628
+ frequency: string;
2533
2629
  /**
2534
- * totalNetSavings divided by the window length (N months, incl. zero-filled)
2630
+ * Currency code
2535
2631
  */
2536
- averageMonthlyNetSavings: string;
2632
+ currency: string;
2537
2633
  };
2538
- type CashFlowTrendsResponseDto = {
2634
+ type ExpectedTransactionResponseDto = {
2539
2635
  /**
2540
- * Monthly cash-flow series (fixed N-month window, zero-filled)
2636
+ * Expected transaction ID
2541
2637
  */
2542
- series: Array<CashFlowPointDto>;
2638
+ id: string;
2543
2639
  /**
2544
- * Period totals
2640
+ * User ID
2545
2641
  */
2546
- summary: CashFlowTrendSummaryDto;
2642
+ userId: string;
2547
2643
  /**
2548
- * Period requested
2644
+ * Associated rule ID
2549
2645
  */
2550
- period: string;
2646
+ ruleId: string;
2551
2647
  /**
2552
- * Data granularity (v1 returns month buckets)
2648
+ * Expected date (YYYY-MM-DD)
2553
2649
  */
2554
- granularity: string;
2650
+ expectedDate: string;
2555
2651
  /**
2556
- * Base currency for converted values
2652
+ * Expected amount
2557
2653
  */
2558
- currency: string;
2654
+ expectedAmount: number;
2559
2655
  /**
2560
- * Exchange rate warnings (e.g. missing rate for a currency)
2656
+ * Status (PENDING, COMPLETED, SKIPPED)
2561
2657
  */
2562
- warnings?: Array<ExchangeRateWarningDto>;
2563
- };
2564
- type GenerateSnapshotBody = unknown;
2565
- type GenerateSnapshotResponse = unknown;
2566
- type BackfillSnapshotsBody = unknown;
2567
- type BackfillSnapshotsResponse = unknown;
2568
- type DeleteOwnUserDto = {
2658
+ status: string;
2569
2659
  /**
2570
- * Access token for user verification
2660
+ * Matched transaction ID
2571
2661
  */
2572
- accessToken: string;
2573
- };
2574
- type SignupDto = {
2662
+ matchedTransactionId?: string;
2575
2663
  /**
2576
- * Cloudflare Turnstile verification token (optional when Turnstile disabled)
2664
+ * Match timestamp (ISO 8601)
2577
2665
  */
2578
- turnstileToken?: string;
2579
- };
2580
- type SignupResponseDto = {
2666
+ matchedAt?: string;
2581
2667
  /**
2582
- * JWT auth token
2668
+ * Match confidence score (0-1)
2583
2669
  */
2584
- authToken: string;
2670
+ matchConfidence?: number;
2585
2671
  /**
2586
- * Auto-generated access token
2672
+ * Whether this expected transaction is overdue
2587
2673
  */
2588
- accessToken: string;
2674
+ isOverdue: boolean;
2589
2675
  /**
2590
- * Assigned user role
2676
+ * Rule information
2591
2677
  */
2592
- role: 'USER' | 'ADMIN' | 'DEMO' | 'INACTIVE' | 'PAID' | 'OPS';
2678
+ rule: ExpectedTransactionRuleDto;
2679
+ /**
2680
+ * Created at timestamp
2681
+ */
2682
+ createdAt: string;
2683
+ /**
2684
+ * Updated at timestamp
2685
+ */
2686
+ updatedAt: string;
2593
2687
  };
2594
- /**
2595
- * Assigned user role
2596
- */
2597
- type role = 'USER' | 'ADMIN' | 'DEMO' | 'INACTIVE' | 'PAID' | 'OPS';
2598
- type UpdateUserSettingDto = {
2688
+ type ExpectedTransactionListResponseDto = {
2689
+ items: Array<ExpectedTransactionResponseDto>;
2599
2690
  /**
2600
- * Security ID
2691
+ * Total count
2601
2692
  */
2602
- secId?: number;
2693
+ total: number;
2694
+ };
2695
+ type ConfirmMatchDto = {
2603
2696
  /**
2604
- * Annual interest rate
2697
+ * Transaction ID to match with
2698
+ */
2699
+ transactionId: string;
2700
+ };
2701
+ type EnterNowDto = {
2702
+ /**
2703
+ * Override expense account (uses rule default if not provided)
2704
+ */
2705
+ expenseAccount?: string;
2706
+ /**
2707
+ * Override payment account (uses rule default if not provided)
2605
2708
  */
2606
- annualInterestRate?: number;
2709
+ paymentAccount?: string;
2607
2710
  /**
2608
- * Currency code
2711
+ * Override amount (uses expected amount if not provided)
2609
2712
  */
2610
- currency?: string;
2713
+ amount?: number;
2611
2714
  /**
2612
- * Base currency code
2715
+ * Override payee (uses rule default if not provided)
2613
2716
  */
2614
- baseCurrency?: string;
2717
+ payee?: string;
2615
2718
  /**
2616
- * Benchmark symbol
2719
+ * Optional narration
2617
2720
  */
2618
- benchmark?: string;
2721
+ narration?: string;
2722
+ };
2723
+ type ForecastItemDto = {
2619
2724
  /**
2620
- * Color scheme
2725
+ * Rule name
2621
2726
  */
2622
- colorScheme?: 'DARK' | 'LIGHT';
2727
+ rule: string;
2623
2728
  /**
2624
- * Date range filter
2729
+ * Rule ID
2625
2730
  */
2626
- dateRange?: string;
2731
+ ruleId: string;
2627
2732
  /**
2628
- * Emergency fund amount
2733
+ * Expected amount
2629
2734
  */
2630
- emergencyFund?: number;
2735
+ amount: number;
2631
2736
  /**
2632
- * Account filter IDs
2737
+ * Expected date (YYYY-MM-DD)
2633
2738
  */
2634
- 'filters.accounts'?: Array<string>;
2739
+ date: string;
2635
2740
  /**
2636
- * Asset class filters
2741
+ * Rule icon emoji
2637
2742
  */
2638
- 'filters.assetClasses'?: Array<string>;
2743
+ icon: string | null;
2639
2744
  /**
2640
- * Data source filter
2745
+ * Currency code
2641
2746
  */
2642
- 'filters.dataSource'?: string;
2747
+ currency: string;
2748
+ };
2749
+ type MonthlyForecastDto = {
2643
2750
  /**
2644
- * Symbol filter
2751
+ * Month (YYYY-MM)
2645
2752
  */
2646
- 'filters.symbol'?: string;
2753
+ month: string;
2647
2754
  /**
2648
- * Tag filters
2755
+ * Total expected outflow for the month
2649
2756
  */
2650
- 'filters.tags'?: Array<string>;
2757
+ expectedOutflow: number;
2651
2758
  /**
2652
- * Enable experimental features
2759
+ * Number of expected transactions
2653
2760
  */
2654
- isExperimentalFeatures?: boolean;
2761
+ itemCount: number;
2655
2762
  /**
2656
- * Enable restricted view mode
2763
+ * Breakdown by currency
2657
2764
  */
2658
- isRestrictedView?: boolean;
2765
+ byCurrency: {
2766
+ [key: string]: unknown;
2767
+ };
2659
2768
  /**
2660
- * Language code
2769
+ * Individual forecast items
2661
2770
  */
2662
- language?: string;
2771
+ items: Array<ForecastItemDto>;
2772
+ };
2773
+ type ForecastResponseDto = {
2663
2774
  /**
2664
- * Locale code
2775
+ * Monthly forecast data
2665
2776
  */
2666
- locale?: string;
2777
+ forecast: Array<MonthlyForecastDto>;
2667
2778
  /**
2668
- * Projected total amount
2779
+ * Total expected outflow across all months
2669
2780
  */
2670
- projectedTotalAmount?: number;
2781
+ totalOutflow: number;
2671
2782
  /**
2672
- * Retirement date in ISO 8601 format
2783
+ * Total by currency across all months
2673
2784
  */
2674
- retirementDate?: string;
2785
+ totalByCurrency: {
2786
+ [key: string]: unknown;
2787
+ };
2675
2788
  /**
2676
- * Savings rate percentage
2789
+ * Number of active recurring rules included
2677
2790
  */
2678
- savingsRate?: number;
2791
+ rulesCount: number;
2679
2792
  /**
2680
- * View mode
2793
+ * Forecast period start date
2681
2794
  */
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 = {
2795
+ periodStart: string;
2693
2796
  /**
2694
- * Property value
2797
+ * Forecast period end date
2695
2798
  */
2696
- value: string;
2799
+ periodEnd: string;
2697
2800
  };
2698
2801
  type CreateTransactionRuleDto = {
2699
2802
  name: string;
@@ -2997,14 +3100,14 @@ type UpdateTransactionRuleDto = {
2997
3100
  */
2998
3101
  amountMax?: number;
2999
3102
  priority?: number;
3000
- /**
3001
- * Enable or disable the rule
3002
- */
3003
- enabled?: boolean;
3004
3103
  additionalTags?: Array<unknown[]>;
3005
3104
  additionalMetadata?: {
3006
3105
  [key: string]: unknown;
3007
3106
  };
3107
+ /**
3108
+ * Enable or disable the rule
3109
+ */
3110
+ enabled?: boolean;
3008
3111
  };
3009
3112
  type TestRuleDto = {
3010
3113
  narration: string;
@@ -3033,6 +3136,42 @@ type TestRuleResponseDto = {
3033
3136
  [key: string]: unknown;
3034
3137
  };
3035
3138
  };
3139
+ type CategoryCatalogEntryDto = {
3140
+ /**
3141
+ * Category slug (single source-of-truth)
3142
+ */
3143
+ slug: string;
3144
+ /**
3145
+ * Display scenario group (maps to frontend picker _scenario)
3146
+ */
3147
+ scenario: 'expense' | 'income' | 'investment' | 'banking' | 'transfer' | 'payment';
3148
+ /**
3149
+ * Lucide icon name
3150
+ */
3151
+ icon: string;
3152
+ /**
3153
+ * Applicable regions ('*' = all, 'cn' = CN-only)
3154
+ */
3155
+ regions: Array<string>;
3156
+ };
3157
+ /**
3158
+ * Display scenario group (maps to frontend picker _scenario)
3159
+ */
3160
+ type scenario = 'expense' | 'income' | 'investment' | 'banking' | 'transfer' | 'payment';
3161
+ type CategoryCatalogListResponseDto = {
3162
+ /**
3163
+ * Category entries (region-scoped, query-filtered)
3164
+ */
3165
+ items: Array<CategoryCatalogEntryDto>;
3166
+ /**
3167
+ * Total category entries for the region (before query filtering)
3168
+ */
3169
+ total: number;
3170
+ /**
3171
+ * Region code
3172
+ */
3173
+ region: string;
3174
+ };
3036
3175
  type CreateBeanEventDto = {
3037
3176
  /**
3038
3177
  * Life event date (ISO 8601)
@@ -3136,6 +3275,10 @@ type OnboardingAccountDto = {
3136
3275
  * Platform ID to bind the account to (references Platform.id); omit for unbound
3137
3276
  */
3138
3277
  platformId?: string;
3278
+ /**
3279
+ * User-set display name override (omit/null = keep the derived name)
3280
+ */
3281
+ displayName?: string | null;
3139
3282
  };
3140
3283
  type OnboardingDto = {
3141
3284
  /**
@@ -3620,6 +3763,76 @@ type ExternalAccountLinkListResponseDto = {
3620
3763
  };
3621
3764
  type ParserTelemetryReportDto = unknown;
3622
3765
  type UncoveredFormatMissDto = unknown;
3766
+ type ClientParsedDataDto = {
3767
+ /**
3768
+ * Transaction amount
3769
+ */
3770
+ amount?: number;
3771
+ /**
3772
+ * Currency code
3773
+ */
3774
+ currency?: string;
3775
+ /**
3776
+ * Transaction date (ISO 8601)
3777
+ */
3778
+ date?: string;
3779
+ /**
3780
+ * Payee/merchant name
3781
+ */
3782
+ payee?: string;
3783
+ /**
3784
+ * Transaction narration
3785
+ */
3786
+ narration?: string;
3787
+ /**
3788
+ * Category slug
3789
+ */
3790
+ category?: string;
3791
+ /**
3792
+ * Income type
3793
+ */
3794
+ incomeType?: string;
3795
+ /**
3796
+ * Income source
3797
+ */
3798
+ incomeSource?: string;
3799
+ /**
3800
+ * Security symbol code (e.g., 600519, AAPL)
3801
+ */
3802
+ symbol?: string;
3803
+ /**
3804
+ * Quantity of shares/units
3805
+ */
3806
+ quantity?: number;
3807
+ /**
3808
+ * Unit price per share/unit
3809
+ */
3810
+ price?: number;
3811
+ /**
3812
+ * Investment action
3813
+ */
3814
+ investmentAction?: 'buy' | 'sell';
3815
+ /**
3816
+ * Payment source: asset (default) or liability (credit card)
3817
+ */
3818
+ paymentSource?: 'asset' | 'liability';
3819
+ /**
3820
+ * Liability account hint (CreditCard/Huabei/Baitiao)
3821
+ */
3822
+ liabilityHint?: string;
3823
+ /**
3824
+ * Display-only warning from the prior response; accepted but ignored.
3825
+ */
3826
+ warning?: string;
3827
+ };
3828
+ /**
3829
+ * Investment action
3830
+ */
3831
+ type investmentAction = 'buy' | 'sell';
3832
+ /**
3833
+ * Payment source: asset (default) or liability (credit card)
3834
+ */
3835
+ type paymentSource = 'asset' | 'liability';
3623
3836
  type ProcessNlpDto = {
3624
3837
  /**
3625
3838
  * Natural language text describing a transaction. Optional when `confirm` is true (structured confirm); otherwise required.
@@ -3636,18 +3849,32 @@ type ProcessNlpDto = {
3636
3849
  /**
3637
3850
  * Parsed data from previous NLP response for session recovery. Send back the parsedData received in confirm_payee/confirm responses.
3638
3851
  */
3639
- parsedData?: {
3640
- [key: string]: unknown;
3641
- };
3852
+ parsedData?: ClientParsedDataDto;
3642
3853
  /**
3643
3854
  * 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.
3644
3855
  */
3645
3856
  selectedRuleId?: string;
3646
3857
  /**
3647
- * 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.
3858
+ * 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.
3648
3859
  */
3649
3860
  selectedAccount?: string;
3861
+ /**
3862
+ * 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.
3863
+ */
3864
+ viewpointAccount?: string;
3865
+ /**
3866
+ * 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.
3867
+ */
3868
+ viewpointCategory?: string;
3869
+ /**
3870
+ * 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.
3871
+ */
3872
+ viewpointFlow?: 'income' | 'expense';
3650
3873
  };
3874
+ /**
3875
+ * 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.
3876
+ */
3877
+ type viewpointFlow = 'income' | 'expense';
3651
3878
  type NlpTransactionInfoDto = {
3652
3879
  /**
3653
3880
  * Transaction ID
@@ -3740,14 +3967,6 @@ type NlpParsedDataDto = {
3740
3967
  */
3741
3968
  warning?: string;
3742
3969
  };
3743
- /**
3744
- * Investment action
3745
- */
3746
- type investmentAction = 'buy' | 'sell';
3747
- /**
3748
- * Payment source: asset (default) or liability (credit card)
3749
- */
3750
- type paymentSource = 'asset' | 'liability';
3751
3970
  type NlpSourceTransactionDto = {
3752
3971
  /**
3753
3972
  * Transaction date (ISO format)
@@ -3874,6 +4093,16 @@ type NlpRuleConfirmationDataDto = {
3874
4093
  */
3875
4094
  reasons: Array<string>;
3876
4095
  };
4096
+ type NlpAccountCandidateDto = {
4097
+ /**
4098
+ * Canonical beancount account path (echo back on selection)
4099
+ */
4100
+ path: string;
4101
+ /**
4102
+ * Localized display name (ADR-0114 read-time projection, user locale)
4103
+ */
4104
+ name: string;
4105
+ };
3877
4106
  type NlpAccountConfirmationDataDto = {
3878
4107
  /**
3879
4108
  * The invalid account name
@@ -3884,9 +4113,9 @@ type NlpAccountConfirmationDataDto = {
3884
4113
  */
3885
4114
  suggestedAccount?: string;
3886
4115
  /**
3887
- * Similar accounts for user selection
4116
+ * Similar accounts for user selection (path + localized name, #680)
3888
4117
  */
3889
- similarAccounts: Array<string>;
4118
+ similarAccounts: Array<NlpAccountCandidateDto>;
3890
4119
  /**
3891
4120
  * Error message explaining the issue
3892
4121
  */
@@ -4052,7 +4281,7 @@ type NlpResponseDto = {
4052
4281
  /**
4053
4282
  * Asset sub-type (only present when intent is "asset"). Determines which asset-related form to render.
4054
4283
  */
4055
- assetSubType?: 'transfer' | 'banking' | 'investment';
4284
+ assetSubType?: 'transfer' | 'banking' | 'investment' | 'lend' | 'lend_collect';
4056
4285
  /**
4057
4286
  * Liability sub-type (only present when intent is "liability"). borrow: borrowing money (Liabilities → Assets), repay: repaying debt (Assets → Liabilities).
4058
4287
  */
@@ -4156,7 +4385,7 @@ type intent = 'expense' | 'asset' | 'income' | 'liability' | 'equity';
4156
4385
  /**
4157
4386
  * Asset sub-type (only present when intent is "asset"). Determines which asset-related form to render.
4158
4387
  */
4159
- type assetSubType = 'transfer' | 'banking' | 'investment';
4388
+ type assetSubType = 'transfer' | 'banking' | 'investment' | 'lend' | 'lend_collect';
4160
4389
  /**
4161
4390
  * Liability sub-type (only present when intent is "liability"). borrow: borrowing money (Liabilities → Assets), repay: repaying debt (Assets → Liabilities).
4162
4391
  */
@@ -4210,7 +4439,7 @@ type PlatformListItemDto = {
4210
4439
  /**
4211
4440
  * Platform type
4212
4441
  */
4213
- type type3 = 'BANK' | 'BROKERAGE' | 'CRYPTO_EXCHANGE' | 'PAYMENT' | 'INVESTMENT' | 'INSURANCE' | 'OTHER';
4442
+ type type4 = 'BANK' | 'BROKERAGE' | 'CRYPTO_EXCHANGE' | 'PAYMENT' | 'INVESTMENT' | 'INSURANCE' | 'OTHER';
4214
4443
  type PlatformMatchResultDto = {
4215
4444
  /**
4216
4445
  * Global platform ID
@@ -4275,6 +4504,46 @@ type PlatformMatchResponseDto = {
4275
4504
  * Overall match quality — top row's tier, or 'none' when no hits
4276
4505
  */
4277
4506
  type matchType2 = 'none' | 'exact' | 'prefix' | 'substring';
4507
+ type PlatformStandardsPlatformDto = {
4508
+ /**
4509
+ * Global platform ID
4510
+ */
4511
+ id: string;
4512
+ /**
4513
+ * Platform name (e.g., "ICBC")
4514
+ */
4515
+ name: string;
4516
+ /**
4517
+ * Canonical identifier in ACCOUNT_RE format (e.g., "icbc")
4518
+ */
4519
+ canonical: string;
4520
+ /**
4521
+ * Suggested path segment — canonical PascalCased per hyphen-part, hyphens preserved (e.g. "Apple-Pay")
4522
+ */
4523
+ suggestedSegment: string;
4524
+ /**
4525
+ * Platform type
4526
+ */
4527
+ type: 'BANK' | 'BROKERAGE' | 'CRYPTO_EXCHANGE' | 'PAYMENT' | 'INVESTMENT' | 'INSURANCE' | 'OTHER';
4528
+ /**
4529
+ * Region-aware category (institution vocab, e.g. DigitalWallet/Bank) resolved against the final region. null = no region-aware suggestion; fall back to type.
4530
+ */
4531
+ category: string | null;
4532
+ };
4533
+ type PlatformStandardsResponseDto = {
4534
+ /**
4535
+ * The selected platform (institution lock source)
4536
+ */
4537
+ platform: PlatformStandardsPlatformDto;
4538
+ /**
4539
+ * 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.
4540
+ */
4541
+ region: string;
4542
+ /**
4543
+ * Candidate account-standard templates of the resolved region (groupable by productCategory client-side)
4544
+ */
4545
+ templates: Array<AccountStandardResponseDto>;
4546
+ };
4278
4547
  type CreatePlatformDto = {
4279
4548
  /**
4280
4549
  * Platform name
@@ -4425,7 +4694,7 @@ type AccountItemDto = {
4425
4694
  */
4426
4695
  name: string;
4427
4696
  /**
4428
- * Display name (last part of account path)
4697
+ * Display name: user-set name if provided (#762), else last part of account path
4429
4698
  */
4430
4699
  displayName: string;
4431
4700
  /**
@@ -4451,11 +4720,11 @@ type PlatformGroupDto = {
4451
4720
  */
4452
4721
  platformName: string;
4453
4722
  /**
4454
- * Accounts within this platform
4723
+ * Accounts within this platform (Assets and Liabilities rows, #696)
4455
4724
  */
4456
4725
  accounts: Array<AccountItemDto>;
4457
4726
  /**
4458
- * FX-converted total balance in base currency
4727
+ * FX-converted total balance in base currency (nets Assets + Liabilities rows; can be negative)
4459
4728
  */
4460
4729
  totalBalance: string;
4461
4730
  /**
@@ -4467,7 +4736,7 @@ type PlatformGroupDto = {
4467
4736
  */
4468
4737
  convertedBalance?: string;
4469
4738
  /**
4470
- * Share of the grand converted total (0-100); 0 when grand total is 0
4739
+ * Share of the converted asset-side grand total (0-100); liability balances are excluded from the basis; 0 when grand total is 0 (#696)
4471
4740
  */
4472
4741
  sharePct: number;
4473
4742
  };
@@ -4491,7 +4760,7 @@ type AccountExchangeRateWarningDto = {
4491
4760
  };
4492
4761
  type AccountsSummaryDto = {
4493
4762
  /**
4494
- * Total number of accounts
4763
+ * Total number of accounts (balance sheet: Assets + Liabilities, #696)
4495
4764
  */
4496
4765
  totalAccounts: number;
4497
4766
  /**
@@ -4527,7 +4796,7 @@ type AccountItemWithAssetClassDto = {
4527
4796
  */
4528
4797
  name: string;
4529
4798
  /**
4530
- * Display name (last part of account path)
4799
+ * Display name: user-set name if provided (#762), else last part of account path
4531
4800
  */
4532
4801
  displayName: string;
4533
4802
  /**
@@ -4813,9 +5082,7 @@ type MonetaryDto = {
4813
5082
  /**
4814
5083
  * Converted to user base currency (Decimal string)
4815
5084
  */
4816
- baseCcyEquivalent?: {
4817
- [key: string]: unknown;
4818
- } | null;
5085
+ baseCcyEquivalent?: string | null;
4819
5086
  };
4820
5087
  type CurrentPriceDto = {
4821
5088
  /**
@@ -4863,15 +5130,11 @@ type HoldingPnlRowDto = {
4863
5130
  /**
4864
5131
  * Account settlement currency (ISO 4217), from cost currency
4865
5132
  */
4866
- accountCcy?: {
4867
- [key: string]: unknown;
4868
- } | null;
5133
+ accountCcy?: string | null;
4869
5134
  /**
4870
5135
  * Broker type derived from Platform.type
4871
5136
  */
4872
- brokerType?: {
4873
- [key: string]: unknown;
4874
- } | null;
5137
+ brokerType?: string | null;
4875
5138
  /**
4876
5139
  * Commodity symbol
4877
5140
  */
@@ -4881,9 +5144,7 @@ type HoldingPnlRowDto = {
4881
5144
  */
4882
5145
  chartToken: 'equity' | 'fund' | 'bond' | 'cash' | 'other';
4883
5146
  assetClass: string;
4884
- assetSubClass?: {
4885
- [key: string]: unknown;
4886
- } | null;
5147
+ assetSubClass?: string | null;
4887
5148
  /**
4888
5149
  * Net held units (Decimal string)
4889
5150
  */
@@ -4907,15 +5168,11 @@ type HoldingPnlRowDto = {
4907
5168
  /**
4908
5169
  * Unrealized P&L in base currency (Decimal string); null when any FX/price missing
4909
5170
  */
4910
- unrealizedPnlBase?: {
4911
- [key: string]: unknown;
4912
- } | null;
5171
+ unrealizedPnlBase?: string | null;
4913
5172
  /**
4914
5173
  * Unrealized P&L % (Decimal string)
4915
5174
  */
4916
- unrealizedPnlPct?: {
4917
- [key: string]: unknown;
4918
- } | null;
5175
+ unrealizedPnlPct?: string | null;
4919
5176
  /**
4920
5177
  * Historical FX rate applied to cost basis
4921
5178
  */
@@ -4927,9 +5184,7 @@ type HoldingPnlRowDto = {
4927
5184
  /**
4928
5185
  * Share of invested assets % (Decimal string); only for invested chartTokens
4929
5186
  */
4930
- pctOfInvestedAssets?: {
4931
- [key: string]: unknown;
4932
- } | null;
5187
+ pctOfInvestedAssets?: string | null;
4933
5188
  /**
4934
5189
  * 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
4935
5190
  */
@@ -4944,20 +5199,14 @@ type HoldingPnlWarningDto = {
4944
5199
  * Warning type
4945
5200
  */
4946
5201
  type: 'MISSING_COST_FX_RATE' | 'MISSING_MARKET_FX_RATE' | 'MISSING_SALE_PRICE' | 'MISSING_REALIZED_FX_RATE' | 'OVERSOLD_LOTS' | 'NO_PRICE' | 'MIXED_COST_CURRENCY';
4947
- symbol?: {
4948
- [key: string]: unknown;
4949
- } | null;
4950
- accountId?: {
4951
- [key: string]: unknown;
4952
- } | null;
4953
- currency?: {
4954
- [key: string]: unknown;
4955
- } | null;
5202
+ symbol?: string | null;
5203
+ accountId?: string | null;
5204
+ currency?: string | null;
4956
5205
  };
4957
5206
  /**
4958
5207
  * Warning type
4959
5208
  */
4960
- type type4 = 'MISSING_COST_FX_RATE' | 'MISSING_MARKET_FX_RATE' | 'MISSING_SALE_PRICE' | 'MISSING_REALIZED_FX_RATE' | 'OVERSOLD_LOTS' | 'NO_PRICE' | 'MIXED_COST_CURRENCY';
5209
+ type type5 = 'MISSING_COST_FX_RATE' | 'MISSING_MARKET_FX_RATE' | 'MISSING_SALE_PRICE' | 'MISSING_REALIZED_FX_RATE' | 'OVERSOLD_LOTS' | 'NO_PRICE' | 'MIXED_COST_CURRENCY';
4961
5210
  type HoldingPnlResponseDto = {
4962
5211
  asOfDate: string;
4963
5212
  baseCurrency: string;
@@ -4984,131 +5233,162 @@ type AnonymousLoginResponseDto = {
4984
5233
  */
4985
5234
  authToken: string;
4986
5235
  };
5236
+ type ParserContributionMetaDto = {
5237
+ /**
5238
+ * Institution slug (lowercase kebab-case)
5239
+ */
5240
+ institution: string;
5241
+ region: 'cn' | 'us' | 'de' | 'fr' | 'gb' | 'hk' | 'jp' | 'sg' | 'au' | 'ca' | 'other';
5242
+ accountType: 'checking' | 'savings' | 'credit' | 'debit' | 'investment';
5243
+ format: 'csv' | 'xlsx' | 'pdf' | 'ofx' | 'qif';
5244
+ institutionDisplayName?: string;
5245
+ encoding?: string;
5246
+ /**
5247
+ * CSV delimiter character: ",", ";", "\t" or "|"
5248
+ */
5249
+ delimiter?: string;
5250
+ /**
5251
+ * Header row count; the client omits the field when it is 1
5252
+ */
5253
+ headerRows?: number;
5254
+ notes?: string;
5255
+ };
5256
+ type region = 'cn' | 'us' | 'de' | 'fr' | 'gb' | 'hk' | 'jp' | 'sg' | 'au' | 'ca' | 'other';
5257
+ type accountType = 'checking' | 'savings' | 'credit' | 'debit' | 'investment';
5258
+ type format = 'csv' | 'xlsx' | 'pdf' | 'ofx' | 'qif';
5259
+ type ParserContributionSamplesDto = {
5260
+ /**
5261
+ * Client-sanitized sample rows (key = column name, value = cell)
5262
+ */
5263
+ rows: Array<{
5264
+ [key: string]: unknown;
5265
+ }>;
5266
+ rawHeaders?: Array<string>;
5267
+ };
5268
+ type FieldHintDto = {
5269
+ columnName: string;
5270
+ /**
5271
+ * Date format, e.g. yyyy-MM-dd HH:mm
5272
+ */
5273
+ format?: string;
5274
+ signConvention?: 'negative-expense' | 'positive-expense' | 'separate-columns';
5275
+ creditColumn?: string;
5276
+ debitColumn?: string;
5277
+ };
5278
+ type signConvention = 'negative-expense' | 'positive-expense' | 'separate-columns';
5279
+ type ParserContributionFieldHintsDto = {
5280
+ date: FieldHintDto;
5281
+ amount: FieldHintDto;
5282
+ description?: FieldHintDto;
5283
+ balance?: FieldHintDto;
5284
+ payee?: FieldHintDto;
5285
+ reference?: FieldHintDto;
5286
+ category?: FieldHintDto;
5287
+ };
5288
+ type ExpectedTransactionDto = {
5289
+ date: string;
5290
+ amount: number;
5291
+ description: string;
5292
+ payee?: string;
5293
+ category?: string;
5294
+ };
5295
+ type ParserContributionExamplesDto = {
5296
+ expectedTransactions: Array<ExpectedTransactionDto>;
5297
+ };
5298
+ type ParserContributionRequestDto = {
5299
+ meta: ParserContributionMetaDto;
5300
+ samples: ParserContributionSamplesDto;
5301
+ fieldHints: ParserContributionFieldHintsDto;
5302
+ /**
5303
+ * Omitted entirely by the client when empty
5304
+ */
5305
+ examples?: ParserContributionExamplesDto;
5306
+ };
5307
+ type ParserContributionRelayResponseDto = {
5308
+ issueUrl: string;
5309
+ issueNumber: number;
5310
+ };
4987
5311
  type SymbolSearchResultDto = {
4988
5312
  symbol: string;
4989
- name?: {
4990
- [key: string]: unknown;
4991
- } | null;
4992
- exchange?: {
4993
- [key: string]: unknown;
4994
- } | null;
5313
+ name?: string | null;
5314
+ exchange?: string | null;
4995
5315
  /**
4996
5316
  * OpenBB asset_type (e.g. stock, etf)
4997
5317
  */
4998
- assetType?: {
4999
- [key: string]: unknown;
5000
- } | null;
5318
+ assetType?: string | null;
5001
5319
  /**
5002
5320
  * IGN asset class (region.types.ts ASSET_CLASSES)
5003
5321
  */
5004
- assetClass?: {
5005
- [key: string]: unknown;
5006
- } | null;
5322
+ assetClass?: string | null;
5007
5323
  /**
5008
5324
  * IGN asset sub-class (region.types.ts ASSET_SUB_CLASSES)
5009
5325
  */
5010
- assetSubClass?: {
5011
- [key: string]: unknown;
5012
- } | null;
5326
+ assetSubClass?: string | null;
5013
5327
  /**
5014
5328
  * Trading currency (extra_data or inferred from exchange)
5015
5329
  */
5016
- currency?: {
5017
- [key: string]: unknown;
5018
- } | null;
5330
+ currency?: string | null;
5019
5331
  };
5020
5332
  type SymbolQuoteDto = {
5021
5333
  symbol?: string;
5022
- name?: {
5023
- [key: string]: unknown;
5024
- } | null;
5025
- exchange?: {
5026
- [key: string]: unknown;
5027
- } | null;
5334
+ name?: string | null;
5335
+ exchange?: string | null;
5028
5336
  /**
5029
5337
  * OpenBB asset_type
5030
5338
  */
5031
- assetType?: {
5032
- [key: string]: unknown;
5033
- } | null;
5339
+ assetType?: string | null;
5034
5340
  /**
5035
5341
  * IGN asset class
5036
5342
  */
5037
- assetClass?: {
5038
- [key: string]: unknown;
5039
- } | null;
5343
+ assetClass?: string | null;
5040
5344
  /**
5041
5345
  * IGN asset sub-class
5042
5346
  */
5043
- assetSubClass?: {
5044
- [key: string]: unknown;
5045
- } | null;
5347
+ assetSubClass?: string | null;
5046
5348
  /**
5047
5349
  * Trading currency (extra_data or inferred from exchange)
5048
5350
  */
5049
- currency?: {
5050
- [key: string]: unknown;
5051
- } | null;
5351
+ currency?: string | null;
5052
5352
  /**
5053
5353
  * Latest price (Decimal string)
5054
5354
  */
5055
- price?: {
5056
- [key: string]: unknown;
5057
- } | null;
5355
+ price?: string | null;
5058
5356
  /**
5059
5357
  * Date the price was observed (ISO yyyy-MM-dd)
5060
5358
  */
5061
- priceDate?: {
5062
- [key: string]: unknown;
5063
- } | null;
5359
+ priceDate?: string | null;
5064
5360
  /**
5065
5361
  * 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.
5066
5362
  */
5067
- changePercent?: {
5068
- [key: string]: unknown;
5069
- } | null;
5363
+ changePercent?: number | null;
5070
5364
  /**
5071
5365
  * Previous close (Decimal string)
5072
5366
  */
5073
- prevClose?: {
5074
- [key: string]: unknown;
5075
- } | null;
5367
+ prevClose?: string | null;
5076
5368
  /**
5077
5369
  * Day open (Decimal string)
5078
5370
  */
5079
- open?: {
5080
- [key: string]: unknown;
5081
- } | null;
5371
+ open?: string | null;
5082
5372
  /**
5083
5373
  * Day high (Decimal string)
5084
5374
  */
5085
- high?: {
5086
- [key: string]: unknown;
5087
- } | null;
5375
+ high?: string | null;
5088
5376
  /**
5089
5377
  * Day low (Decimal string)
5090
5378
  */
5091
- low?: {
5092
- [key: string]: unknown;
5093
- } | null;
5379
+ low?: string | null;
5094
5380
  /**
5095
5381
  * Day volume (Decimal string)
5096
5382
  */
5097
- volume?: {
5098
- [key: string]: unknown;
5099
- } | null;
5383
+ volume?: string | null;
5100
5384
  /**
5101
5385
  * 52-week high (Decimal string)
5102
5386
  */
5103
- yearHigh?: {
5104
- [key: string]: unknown;
5105
- } | null;
5387
+ yearHigh?: string | null;
5106
5388
  /**
5107
5389
  * 52-week low (Decimal string)
5108
5390
  */
5109
- yearLow?: {
5110
- [key: string]: unknown;
5111
- } | null;
5391
+ yearLow?: string | null;
5112
5392
  };
5113
5393
  type AccountControllerCreateData = {
5114
5394
  /**
@@ -5221,11 +5501,11 @@ type AccountControllerAddOpeningBalanceData = {
5221
5501
  type AccountControllerAddOpeningBalanceResponse = OpeningBalanceResultDto;
5222
5502
  type AccountStandardsControllerGetTemplatesData = {
5223
5503
  /**
5224
- * Region code (cn, us, de)
5504
+ * Region code (any ISO alpha-2; not-yet-open codes return the universal-only catalog)
5225
5505
  */
5226
- 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';
5506
+ 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';
5227
5507
  /**
5228
- * Search term for path or description
5508
+ * Search term for path, description, aliases, or localized display name
5229
5509
  */
5230
5510
  search?: string;
5231
5511
  /**
@@ -5240,16 +5520,16 @@ type AccountStandardsControllerGetTemplateMetadataData = {
5240
5520
  */
5241
5521
  path: string;
5242
5522
  /**
5243
- * Region code for tenant context
5523
+ * Region code for tenant context. Not-yet-open codes degrade to the universal-only catalog (#759)
5244
5524
  */
5245
- 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';
5525
+ 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';
5246
5526
  };
5247
5527
  type AccountStandardsControllerGetTemplateMetadataResponse = TemplateMetadataResponseDto;
5248
5528
  type AccountStandardsControllerGetRegionsData = {
5249
5529
  /**
5250
- * Region code for tenant context
5530
+ * Region code for tenant context. Not-yet-open codes degrade to the universal-only catalog (#759)
5251
5531
  */
5252
- 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';
5532
+ 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';
5253
5533
  };
5254
5534
  type AccountStandardsControllerGetRegionsResponse = RegionsMetadataResponseDto;
5255
5535
  type TransactionControllerCreateData = {
@@ -5269,7 +5549,7 @@ type TransactionControllerListData = {
5269
5549
  */
5270
5550
  accountId?: string;
5271
5551
  /**
5272
- * Filter by ADR-0075 functional category (Group segment); matches any posting to an Expenses/Income account whose derived Group segment equals this value
5552
+ * 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).
5273
5553
  */
5274
5554
  category?: string;
5275
5555
  /**
@@ -5280,6 +5560,10 @@ type TransactionControllerListData = {
5280
5560
  * Filter by end date (inclusive), format: YYYY-MM-DD
5281
5561
  */
5282
5562
  dateTo?: string;
5563
+ /**
5564
+ * 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.
5565
+ */
5566
+ flow?: 'income' | 'expense';
5283
5567
  /**
5284
5568
  * Number of items per page (1-100, default: 20)
5285
5569
  */
@@ -5297,9 +5581,9 @@ type TransactionControllerListData = {
5297
5581
  */
5298
5582
  search?: string;
5299
5583
  /**
5300
- * Filter by transaction status
5584
+ * 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).
5301
5585
  */
5302
- status?: 'ACTIVE' | 'VOIDED' | 'SUPERSEDED';
5586
+ status?: 'ACTIVE' | 'VOIDED' | 'SUPERSEDED' | 'ALL';
5303
5587
  };
5304
5588
  type TransactionControllerListResponse = TransactionListResponseDto;
5305
5589
  type TransactionControllerCreateBatchData = {
@@ -5616,7 +5900,7 @@ type PayeeProfileAdminControllerUnverifyData = {
5616
5900
  */
5617
5901
  id: string;
5618
5902
  };
5619
- type PayeeProfileAdminControllerUnverifyResponse = PayeeProfileResponseDto;
5903
+ type PayeeProfileAdminControllerUnverifyResponse = void;
5620
5904
  type CommodityControllerCreateData = {
5621
5905
  /**
5622
5906
  * Region code for tenant context
@@ -5692,6 +5976,55 @@ type CommodityControllerBulkCreateData = {
5692
5976
  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';
5693
5977
  };
5694
5978
  type CommodityControllerBulkCreateResponse = Array<CommodityResponseDto>;
5979
+ type ReportingControllerGetPortfolioTrendsData = {
5980
+ /**
5981
+ * Data granularity
5982
+ */
5983
+ granularity?: 'day' | 'week' | 'month';
5984
+ /**
5985
+ * Time period
5986
+ */
5987
+ period?: '1m' | '3m' | '6m' | '1y';
5988
+ /**
5989
+ * Region code for tenant context
5990
+ */
5991
+ 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';
5992
+ };
5993
+ type ReportingControllerGetPortfolioTrendsResponse = PortfolioTrendsResponseDto;
5994
+ type ReportingControllerGetCashFlowTrendsData = {
5995
+ /**
5996
+ * Data granularity (accepted for API symmetry; v1 returns month buckets)
5997
+ */
5998
+ granularity?: 'day' | 'week' | 'month';
5999
+ /**
6000
+ * Time period
6001
+ */
6002
+ period?: '1m' | '3m' | '6m' | '1y';
6003
+ /**
6004
+ * Region code for tenant context
6005
+ */
6006
+ 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';
6007
+ };
6008
+ type ReportingControllerGetCashFlowTrendsResponse = CashFlowTrendsResponseDto;
6009
+ type ReportingControllerGenerateSnapshotData = {
6010
+ /**
6011
+ * Region code for tenant context
6012
+ */
6013
+ 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';
6014
+ /**
6015
+ * Optional date (defaults to today)
6016
+ */
6017
+ requestBody: GenerateSnapshotBody;
6018
+ };
6019
+ type ReportingControllerGenerateSnapshotResponse = GenerateSnapshotResponse;
6020
+ type ReportingControllerBackfillSnapshotsData = {
6021
+ /**
6022
+ * Region code for tenant context
6023
+ */
6024
+ 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';
6025
+ requestBody: BackfillSnapshotsBody;
6026
+ };
6027
+ type ReportingControllerBackfillSnapshotsResponse = BackfillSnapshotsResponse;
5695
6028
  type PriceControllerCreateData = {
5696
6029
  /**
5697
6030
  * Region code for tenant context
@@ -5777,6 +6110,71 @@ type PriceControllerBulkCreateData = {
5777
6110
  requestBody: Array<string>;
5778
6111
  };
5779
6112
  type PriceControllerBulkCreateResponse = Array<PriceResponseDto>;
6113
+ type UserControllerDeleteOwnUserData = {
6114
+ requestBody: DeleteOwnUserDto;
6115
+ };
6116
+ type UserControllerDeleteOwnUserResponse = void;
6117
+ type UserControllerGetUserData = {
6118
+ acceptLanguage: string;
6119
+ };
6120
+ type UserControllerGetUserResponse = UserResponseDto;
6121
+ type UserControllerSignupUserData = {
6122
+ requestBody: SignupDto;
6123
+ };
6124
+ type UserControllerSignupUserResponse = SignupResponseDto;
6125
+ type UserControllerDeleteUserData = {
6126
+ /**
6127
+ * User ID to delete
6128
+ */
6129
+ id: string;
6130
+ };
6131
+ type UserControllerDeleteUserResponse = void;
6132
+ type UserControllerGetUserInfoData = {
6133
+ /**
6134
+ * User ID
6135
+ */
6136
+ id: string;
6137
+ };
6138
+ type UserControllerGetUserInfoResponse = unknown;
6139
+ type UserControllerUpdateUserSettingData = {
6140
+ requestBody: UpdateUserSettingDto;
6141
+ };
6142
+ type UserControllerUpdateUserSettingResponse = unknown;
6143
+ type UserControllerGetAllUserSettingsByPageData = {
6144
+ /**
6145
+ * Page number
6146
+ */
6147
+ pageNo: number;
6148
+ /**
6149
+ * Page size
6150
+ */
6151
+ pageSize: number;
6152
+ };
6153
+ type UserControllerGetAllUserSettingsByPageResponse = unknown;
6154
+ type UserControllerGetAssetLiabilitySummaryResponse = unknown;
6155
+ type PropertyControllerGetAllResponse = unknown;
6156
+ type PropertyControllerGetByKeyData = {
6157
+ /**
6158
+ * Property key
6159
+ */
6160
+ key: string;
6161
+ };
6162
+ type PropertyControllerGetByKeyResponse = unknown;
6163
+ type PropertyControllerUpdateData = {
6164
+ /**
6165
+ * Property key
6166
+ */
6167
+ key: string;
6168
+ requestBody: UpdatePropertyDto;
6169
+ };
6170
+ type PropertyControllerUpdateResponse = unknown;
6171
+ type PropertyControllerDeleteData = {
6172
+ /**
6173
+ * Property key
6174
+ */
6175
+ key: string;
6176
+ };
6177
+ type PropertyControllerDeleteResponse = void;
5780
6178
  type RecurringRuleControllerCreateData = {
5781
6179
  /**
5782
6180
  * Region code for tenant context
@@ -5884,206 +6282,92 @@ type ExpectedTransactionControllerFindAllData = {
5884
6282
  toDate?: string;
5885
6283
  };
5886
6284
  type ExpectedTransactionControllerFindAllResponse = ExpectedTransactionListResponseDto;
5887
- type ExpectedTransactionControllerFindOverdueData = {
5888
- /**
5889
- * Region code for tenant context
5890
- */
5891
- 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';
5892
- };
5893
- type ExpectedTransactionControllerFindOverdueResponse = ExpectedTransactionListResponseDto;
5894
- type ExpectedTransactionControllerFindOneData = {
5895
- /**
5896
- * Expected transaction ID
5897
- */
5898
- id: string;
5899
- /**
5900
- * Region code for tenant context
5901
- */
5902
- 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';
5903
- };
5904
- type ExpectedTransactionControllerFindOneResponse = ExpectedTransactionResponseDto;
5905
- type ExpectedTransactionControllerSkipData = {
5906
- /**
5907
- * Expected transaction ID
5908
- */
5909
- id: string;
5910
- /**
5911
- * Region code for tenant context
5912
- */
5913
- 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';
5914
- };
5915
- type ExpectedTransactionControllerSkipResponse = ExpectedTransactionResponseDto;
5916
- type ExpectedTransactionControllerUndoSkipData = {
5917
- /**
5918
- * Expected transaction ID
5919
- */
5920
- id: string;
5921
- /**
5922
- * Region code for tenant context
5923
- */
5924
- 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';
5925
- };
5926
- type ExpectedTransactionControllerUndoSkipResponse = ExpectedTransactionResponseDto;
5927
- type ExpectedTransactionControllerConfirmMatchData = {
5928
- /**
5929
- * Expected transaction ID
5930
- */
5931
- id: string;
5932
- /**
5933
- * Region code for tenant context
5934
- */
5935
- 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';
5936
- requestBody: ConfirmMatchDto;
5937
- };
5938
- type ExpectedTransactionControllerConfirmMatchResponse = unknown;
5939
- type ExpectedTransactionControllerUnmatchData = {
5940
- /**
5941
- * Expected transaction ID
5942
- */
5943
- id: string;
5944
- /**
5945
- * Region code for tenant context
5946
- */
5947
- 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';
5948
- };
5949
- type ExpectedTransactionControllerUnmatchResponse = unknown;
5950
- type ExpectedTransactionControllerEnterNowData = {
5951
- /**
5952
- * Expected transaction ID
5953
- */
5954
- id: string;
5955
- /**
5956
- * Region code for tenant context
5957
- */
5958
- 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';
5959
- requestBody: EnterNowDto;
5960
- };
5961
- type ExpectedTransactionControllerEnterNowResponse = unknown;
5962
- type ForecastControllerGetForecastData = {
5963
- /**
5964
- * Number of months to forecast (1-12, default 3)
5965
- */
5966
- months?: number;
6285
+ type ExpectedTransactionControllerFindOverdueData = {
5967
6286
  /**
5968
6287
  * Region code for tenant context
5969
6288
  */
5970
6289
  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';
5971
6290
  };
5972
- type ForecastControllerGetForecastResponse = ForecastResponseDto;
5973
- type ReportingControllerGetPortfolioTrendsData = {
5974
- /**
5975
- * Data granularity
5976
- */
5977
- granularity?: 'day' | 'week' | 'month';
6291
+ type ExpectedTransactionControllerFindOverdueResponse = ExpectedTransactionListResponseDto;
6292
+ type ExpectedTransactionControllerFindOneData = {
5978
6293
  /**
5979
- * Time period
6294
+ * Expected transaction ID
5980
6295
  */
5981
- period?: '1m' | '3m' | '6m' | '1y';
6296
+ id: string;
5982
6297
  /**
5983
6298
  * Region code for tenant context
5984
6299
  */
5985
6300
  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';
5986
6301
  };
5987
- type ReportingControllerGetPortfolioTrendsResponse = PortfolioTrendsResponseDto;
5988
- type ReportingControllerGetCashFlowTrendsData = {
5989
- /**
5990
- * Data granularity (accepted for API symmetry; v1 returns month buckets)
5991
- */
5992
- granularity?: 'day' | 'week' | 'month';
6302
+ type ExpectedTransactionControllerFindOneResponse = ExpectedTransactionResponseDto;
6303
+ type ExpectedTransactionControllerSkipData = {
5993
6304
  /**
5994
- * Time period
6305
+ * Expected transaction ID
5995
6306
  */
5996
- period?: '1m' | '3m' | '6m' | '1y';
6307
+ id: string;
5997
6308
  /**
5998
6309
  * Region code for tenant context
5999
6310
  */
6000
6311
  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';
6001
6312
  };
6002
- type ReportingControllerGetCashFlowTrendsResponse = CashFlowTrendsResponseDto;
6003
- type ReportingControllerGenerateSnapshotData = {
6313
+ type ExpectedTransactionControllerSkipResponse = ExpectedTransactionResponseDto;
6314
+ type ExpectedTransactionControllerUndoSkipData = {
6315
+ /**
6316
+ * Expected transaction ID
6317
+ */
6318
+ id: string;
6004
6319
  /**
6005
6320
  * Region code for tenant context
6006
6321
  */
6007
6322
  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';
6323
+ };
6324
+ type ExpectedTransactionControllerUndoSkipResponse = void;
6325
+ type ExpectedTransactionControllerConfirmMatchData = {
6008
6326
  /**
6009
- * Optional date (defaults to today)
6327
+ * Expected transaction ID
6010
6328
  */
6011
- requestBody: GenerateSnapshotBody;
6012
- };
6013
- type ReportingControllerGenerateSnapshotResponse = GenerateSnapshotResponse;
6014
- type ReportingControllerBackfillSnapshotsData = {
6329
+ id: string;
6015
6330
  /**
6016
6331
  * Region code for tenant context
6017
6332
  */
6018
6333
  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';
6019
- requestBody: BackfillSnapshotsBody;
6020
- };
6021
- type ReportingControllerBackfillSnapshotsResponse = BackfillSnapshotsResponse;
6022
- type UserControllerDeleteOwnUserData = {
6023
- requestBody: DeleteOwnUserDto;
6024
- };
6025
- type UserControllerDeleteOwnUserResponse = void;
6026
- type UserControllerGetUserData = {
6027
- acceptLanguage: string;
6028
- };
6029
- type UserControllerGetUserResponse = unknown;
6030
- type UserControllerSignupUserData = {
6031
- requestBody: SignupDto;
6334
+ requestBody: ConfirmMatchDto;
6032
6335
  };
6033
- type UserControllerSignupUserResponse = SignupResponseDto;
6034
- type UserControllerDeleteUserData = {
6336
+ type ExpectedTransactionControllerConfirmMatchResponse = unknown;
6337
+ type ExpectedTransactionControllerUnmatchData = {
6035
6338
  /**
6036
- * User ID to delete
6339
+ * Expected transaction ID
6037
6340
  */
6038
6341
  id: string;
6039
- };
6040
- type UserControllerDeleteUserResponse = void;
6041
- type UserControllerGetUserInfoData = {
6042
6342
  /**
6043
- * User ID
6343
+ * Region code for tenant context
6044
6344
  */
6045
- id: string;
6046
- };
6047
- type UserControllerGetUserInfoResponse = unknown;
6048
- type UserControllerUpdateUserSettingData = {
6049
- requestBody: UpdateUserSettingDto;
6345
+ 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';
6050
6346
  };
6051
- type UserControllerUpdateUserSettingResponse = unknown;
6052
- type UserControllerGetAllUserSettingsByPageData = {
6053
- /**
6054
- * Page number
6055
- */
6056
- pageNo: number;
6347
+ type ExpectedTransactionControllerUnmatchResponse = void;
6348
+ type ExpectedTransactionControllerEnterNowData = {
6057
6349
  /**
6058
- * Page size
6350
+ * Expected transaction ID
6059
6351
  */
6060
- pageSize: number;
6061
- };
6062
- type UserControllerGetAllUserSettingsByPageResponse = unknown;
6063
- type UserControllerGetAssetLiabilitySummaryResponse = unknown;
6064
- type PropertyControllerGetAllResponse = unknown;
6065
- type PropertyControllerGetByKeyData = {
6352
+ id: string;
6066
6353
  /**
6067
- * Property key
6354
+ * Region code for tenant context
6068
6355
  */
6069
- key: string;
6356
+ 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';
6357
+ requestBody: EnterNowDto;
6070
6358
  };
6071
- type PropertyControllerGetByKeyResponse = unknown;
6072
- type PropertyControllerUpdateData = {
6359
+ type ExpectedTransactionControllerEnterNowResponse = unknown;
6360
+ type ForecastControllerGetForecastData = {
6073
6361
  /**
6074
- * Property key
6362
+ * Number of months to forecast (1-12, default 3)
6075
6363
  */
6076
- key: string;
6077
- requestBody: UpdatePropertyDto;
6078
- };
6079
- type PropertyControllerUpdateResponse = unknown;
6080
- type PropertyControllerDeleteData = {
6364
+ months?: number;
6081
6365
  /**
6082
- * Property key
6366
+ * Region code for tenant context
6083
6367
  */
6084
- key: string;
6368
+ 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';
6085
6369
  };
6086
- type PropertyControllerDeleteResponse = void;
6370
+ type ForecastControllerGetForecastResponse = ForecastResponseDto;
6087
6371
  type TransactionRuleControllerCreateData = {
6088
6372
  /**
6089
6373
  * Region code for tenant context
@@ -6203,6 +6487,21 @@ type TransactionRuleControllerTestData = {
6203
6487
  ruleId: string;
6204
6488
  };
6205
6489
  type TransactionRuleControllerTestResponse = TestRuleResponseDto;
6490
+ type CategoryCatalogControllerListData = {
6491
+ /**
6492
+ * Region code for tenant context
6493
+ */
6494
+ 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';
6495
+ /**
6496
+ * Filter by routeBearing (entity-router route() consumes it)
6497
+ */
6498
+ routeBearing?: boolean;
6499
+ /**
6500
+ * Filter by scenario
6501
+ */
6502
+ scenario?: 'expense' | 'income' | 'investment' | 'banking' | 'transfer' | 'payment';
6503
+ };
6504
+ type CategoryCatalogControllerListResponse = CategoryCatalogListResponseDto;
6206
6505
  type EventControllerCreateData = {
6207
6506
  /**
6208
6507
  * Region code for tenant context (decorative for life events)
@@ -6291,9 +6590,9 @@ type EventControllerGetSliceData = {
6291
6590
  type EventControllerGetSliceResponse = unknown;
6292
6591
  type OnboardingControllerBootstrapData = {
6293
6592
  /**
6294
- * Region code for tenant context
6593
+ * Region code for tenant context. Not-yet-open codes are accepted: the universal catalog backs onboarding regardless of region (#759)
6295
6594
  */
6296
- 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';
6595
+ 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';
6297
6596
  requestBody: OnboardingDto;
6298
6597
  };
6299
6598
  type OnboardingControllerBootstrapResponse = unknown;
@@ -6332,7 +6631,7 @@ type ReconciliationControllerHistoryData = {
6332
6631
  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';
6333
6632
  };
6334
6633
  type ReconciliationControllerHistoryResponse = Array<ReconciliationRecordDto>;
6335
- type ExportControllerExportBeancountResponse = unknown;
6634
+ type ExportControllerExportBeancountResponse = Blob | File;
6336
6635
  type FileImportControllerImportFileData = {
6337
6636
  /**
6338
6637
  * Bill file to import
@@ -6556,6 +6855,21 @@ type PlatformControllerMatchPlatformsData = {
6556
6855
  region?: string;
6557
6856
  };
6558
6857
  type PlatformControllerMatchPlatformsResponse = PlatformMatchResponseDto;
6858
+ type PlatformControllerGetPlatformStandardsData = {
6859
+ /**
6860
+ * Platform ID (from a match result)
6861
+ */
6862
+ id: string;
6863
+ /**
6864
+ * 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.
6865
+ */
6866
+ region?: string;
6867
+ /**
6868
+ * Filter templates by account type (path first segment)
6869
+ */
6870
+ type?: 'Assets' | 'Liabilities' | 'Income' | 'Expenses' | 'Equity';
6871
+ };
6872
+ type PlatformControllerGetPlatformStandardsResponse = PlatformStandardsResponseDto;
6559
6873
  type PlatformControllerUpdateData = {
6560
6874
  /**
6561
6875
  * Platform ID
@@ -6655,6 +6969,14 @@ type AuthControllerAccessTokenLoginData = {
6655
6969
  requestBody: AnonymousLoginDto;
6656
6970
  };
6657
6971
  type AuthControllerAccessTokenLoginResponse = AnonymousLoginResponseDto;
6972
+ type ParserContributionControllerCreateData = {
6973
+ /**
6974
+ * Region code for tenant context (routing only; the institution region rides in the payload meta)
6975
+ */
6976
+ 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';
6977
+ requestBody: ParserContributionRequestDto;
6978
+ };
6979
+ type ParserContributionControllerCreateResponse = ParserContributionRelayResponseDto;
6658
6980
  type CacheControllerFlushCacheResponse = unknown;
6659
6981
  type ExchangeRateControllerGetExchangeRateData = {
6660
6982
  /**
@@ -7332,7 +7654,7 @@ type $OpenApiTs = {
7332
7654
  /**
7333
7655
  * Payee profile unverified successfully
7334
7656
  */
7335
- 200: PayeeProfileResponseDto;
7657
+ 204: void;
7336
7658
  /**
7337
7659
  * Admin access required
7338
7660
  */
@@ -7439,598 +7761,598 @@ type $OpenApiTs = {
7439
7761
  };
7440
7762
  };
7441
7763
  };
7442
- '/api/v1/{region}/bean/prices': {
7443
- post: {
7444
- req: PriceControllerCreateData;
7764
+ '/api/v1/{region}/reporting/portfolio/trends': {
7765
+ get: {
7766
+ req: ReportingControllerGetPortfolioTrendsData;
7445
7767
  res: {
7446
7768
  /**
7447
- * Price created successfully
7448
- */
7449
- 201: PriceResponseDto;
7450
- /**
7451
- * Currency or quoteCurrency commodity not found
7452
- */
7453
- 404: unknown;
7454
- /**
7455
- * Price already exists for this currency pair and date
7769
+ * Trends retrieved successfully
7456
7770
  */
7457
- 409: unknown;
7458
- };
7459
- };
7460
- get: {
7461
- req: PriceControllerFindAllData;
7462
- res: {
7771
+ 200: PortfolioTrendsResponseDto;
7463
7772
  /**
7464
- * Prices retrieved successfully
7773
+ * User not authenticated
7465
7774
  */
7466
- 200: PriceListResponseDto;
7775
+ 401: unknown;
7467
7776
  };
7468
7777
  };
7469
7778
  };
7470
- '/api/v1/{region}/bean/prices/{id}': {
7779
+ '/api/v1/{region}/reporting/cash-flow/trends': {
7471
7780
  get: {
7472
- req: PriceControllerFindOneData;
7473
- res: {
7474
- /**
7475
- * Price retrieved successfully
7476
- */
7477
- 200: PriceResponseDto;
7478
- /**
7479
- * Price not found
7480
- */
7481
- 404: unknown;
7482
- };
7483
- };
7484
- put: {
7485
- req: PriceControllerUpdateData;
7781
+ req: ReportingControllerGetCashFlowTrendsData;
7486
7782
  res: {
7487
7783
  /**
7488
- * Price updated successfully
7489
- */
7490
- 200: PriceResponseDto;
7491
- /**
7492
- * Price not found
7784
+ * Cash-flow trends retrieved successfully
7493
7785
  */
7494
- 404: unknown;
7786
+ 200: CashFlowTrendsResponseDto;
7495
7787
  /**
7496
- * Updated price conflicts with existing price
7788
+ * User not authenticated
7497
7789
  */
7498
- 409: unknown;
7790
+ 401: unknown;
7499
7791
  };
7500
7792
  };
7501
- delete: {
7502
- req: PriceControllerDeleteData;
7793
+ };
7794
+ '/api/v1/{region}/reporting/snapshots/generate': {
7795
+ post: {
7796
+ req: ReportingControllerGenerateSnapshotData;
7503
7797
  res: {
7504
7798
  /**
7505
- * Price deleted successfully
7799
+ * Snapshot generated successfully
7506
7800
  */
7507
- 204: void;
7801
+ 200: GenerateSnapshotResponse;
7508
7802
  /**
7509
- * Price not found
7803
+ * Invalid date format
7510
7804
  */
7511
- 404: unknown;
7512
- };
7513
- };
7514
- };
7515
- '/api/v1/{region}/bean/prices/bulk': {
7516
- post: {
7517
- req: PriceControllerBulkCreateData;
7518
- res: {
7805
+ 400: unknown;
7519
7806
  /**
7520
- * Prices created successfully
7807
+ * User not authenticated
7521
7808
  */
7522
- 201: Array<PriceResponseDto>;
7809
+ 401: unknown;
7523
7810
  };
7524
7811
  };
7525
7812
  };
7526
- '/api/v1/{region}/bean/recurring-rules': {
7813
+ '/api/v1/{region}/reporting/snapshots/backfill': {
7527
7814
  post: {
7528
- req: RecurringRuleControllerCreateData;
7815
+ req: ReportingControllerBackfillSnapshotsData;
7529
7816
  res: {
7530
7817
  /**
7531
- * Rule created successfully
7818
+ * Backfill completed successfully
7532
7819
  */
7533
- 201: RecurringRuleResponseDto;
7820
+ 200: BackfillSnapshotsResponse;
7534
7821
  /**
7535
- * Invalid input data (e.g., autoCreate without accounts)
7822
+ * Invalid date format or range
7536
7823
  */
7537
7824
  400: unknown;
7538
7825
  /**
7539
- * Rule with same name already exists
7826
+ * User not authenticated
7540
7827
  */
7541
- 409: unknown;
7542
- };
7543
- };
7544
- get: {
7545
- req: RecurringRuleControllerFindAllData;
7546
- res: {
7828
+ 401: unknown;
7547
7829
  /**
7548
- * Rules retrieved successfully
7830
+ * Backfill already in progress for this user
7549
7831
  */
7550
- 200: Array<RecurringRuleResponseDto>;
7832
+ 409: unknown;
7551
7833
  };
7552
7834
  };
7553
7835
  };
7554
- '/api/v1/{region}/bean/recurring-rules/from-transaction/{transactionId}': {
7836
+ '/api/v1/{region}/bean/prices': {
7555
7837
  post: {
7556
- req: RecurringRuleControllerCreateFromTransactionData;
7838
+ req: PriceControllerCreateData;
7557
7839
  res: {
7558
7840
  /**
7559
- * Rule created successfully
7841
+ * Price created successfully
7560
7842
  */
7561
- 201: RecurringRuleResponseDto;
7843
+ 201: PriceResponseDto;
7562
7844
  /**
7563
- * Transaction not found
7845
+ * Currency or quoteCurrency commodity not found
7846
+ */
7847
+ 404: unknown;
7848
+ /**
7849
+ * Price already exists for this currency pair and date
7564
7850
  */
7565
- 404: ApiProblemResponseDto;
7851
+ 409: unknown;
7852
+ };
7853
+ };
7854
+ get: {
7855
+ req: PriceControllerFindAllData;
7856
+ res: {
7566
7857
  /**
7567
- * Rule with same name already exists or transaction already linked
7858
+ * Prices retrieved successfully
7568
7859
  */
7569
- 409: ApiProblemResponseDto;
7860
+ 200: PriceListResponseDto;
7570
7861
  };
7571
7862
  };
7572
7863
  };
7573
- '/api/v1/{region}/bean/recurring-rules/{id}': {
7864
+ '/api/v1/{region}/bean/prices/{id}': {
7574
7865
  get: {
7575
- req: RecurringRuleControllerFindOneData;
7866
+ req: PriceControllerFindOneData;
7576
7867
  res: {
7577
7868
  /**
7578
- * Rule retrieved successfully
7869
+ * Price retrieved successfully
7579
7870
  */
7580
- 200: RecurringRuleResponseDto;
7871
+ 200: PriceResponseDto;
7581
7872
  /**
7582
- * Rule not found
7873
+ * Price not found
7583
7874
  */
7584
7875
  404: unknown;
7585
7876
  };
7586
7877
  };
7587
- patch: {
7588
- req: RecurringRuleControllerUpdateData;
7878
+ put: {
7879
+ req: PriceControllerUpdateData;
7589
7880
  res: {
7590
7881
  /**
7591
- * Rule updated successfully
7882
+ * Price updated successfully
7592
7883
  */
7593
- 200: RecurringRuleResponseDto;
7884
+ 200: PriceResponseDto;
7594
7885
  /**
7595
- * Invalid input data
7886
+ * Price not found
7596
7887
  */
7597
- 400: unknown;
7888
+ 404: unknown;
7598
7889
  /**
7599
- * Rule not found
7890
+ * Updated price conflicts with existing price
7600
7891
  */
7601
- 404: unknown;
7892
+ 409: unknown;
7602
7893
  };
7603
7894
  };
7604
7895
  delete: {
7605
- req: RecurringRuleControllerDeleteData;
7896
+ req: PriceControllerDeleteData;
7606
7897
  res: {
7607
7898
  /**
7608
- * Rule deleted successfully
7899
+ * Price deleted successfully
7609
7900
  */
7610
7901
  204: void;
7611
7902
  /**
7612
- * Rule not found
7903
+ * Price not found
7613
7904
  */
7614
7905
  404: unknown;
7615
7906
  };
7616
7907
  };
7617
7908
  };
7618
- '/api/v1/{region}/bean/recurring-rules/{id}/stats': {
7619
- get: {
7620
- req: RecurringRuleControllerGetWithStatsData;
7909
+ '/api/v1/{region}/bean/prices/bulk': {
7910
+ post: {
7911
+ req: PriceControllerBulkCreateData;
7621
7912
  res: {
7622
7913
  /**
7623
- * Rule with stats retrieved successfully
7624
- */
7625
- 200: RecurringRuleWithStatsResponseDto;
7626
- /**
7627
- * Rule not found
7914
+ * Prices created successfully
7628
7915
  */
7629
- 404: unknown;
7916
+ 201: Array<PriceResponseDto>;
7630
7917
  };
7631
7918
  };
7632
7919
  };
7633
- '/api/v1/{region}/bean/expected-transactions': {
7634
- get: {
7635
- req: ExpectedTransactionControllerFindAllData;
7920
+ '/api/v1/users': {
7921
+ delete: {
7922
+ req: UserControllerDeleteOwnUserData;
7636
7923
  res: {
7637
7924
  /**
7638
- * Expected transactions retrieved successfully
7925
+ * User deleted successfully
7639
7926
  */
7640
- 200: ExpectedTransactionListResponseDto;
7641
- };
7642
- };
7643
- };
7644
- '/api/v1/{region}/bean/expected-transactions/overdue': {
7645
- get: {
7646
- req: ExpectedTransactionControllerFindOverdueData;
7647
- res: {
7927
+ 204: void;
7648
7928
  /**
7649
- * Overdue transactions retrieved successfully
7929
+ * Invalid access token
7650
7930
  */
7651
- 200: ExpectedTransactionListResponseDto;
7931
+ 403: unknown;
7652
7932
  };
7653
7933
  };
7654
- };
7655
- '/api/v1/{region}/bean/expected-transactions/{id}': {
7656
7934
  get: {
7657
- req: ExpectedTransactionControllerFindOneData;
7935
+ req: UserControllerGetUserData;
7658
7936
  res: {
7659
7937
  /**
7660
- * Expected transaction retrieved successfully
7661
- */
7662
- 200: ExpectedTransactionResponseDto;
7663
- /**
7664
- * Expected transaction not found
7938
+ * User retrieved successfully
7665
7939
  */
7666
- 404: unknown;
7940
+ 200: UserResponseDto;
7667
7941
  };
7668
7942
  };
7669
- };
7670
- '/api/v1/{region}/bean/expected-transactions/{id}/skip': {
7671
7943
  post: {
7672
- req: ExpectedTransactionControllerSkipData;
7944
+ req: UserControllerSignupUserData;
7673
7945
  res: {
7674
7946
  /**
7675
- * Expected transaction skipped successfully
7947
+ * User created successfully
7676
7948
  */
7677
- 200: ExpectedTransactionResponseDto;
7949
+ 201: SignupResponseDto;
7678
7950
  /**
7679
- * Cannot skip - not in PENDING status
7951
+ * Invalid Turnstile token (when Turnstile is enabled)
7680
7952
  */
7681
7953
  400: unknown;
7682
7954
  /**
7683
- * Expected transaction not found
7955
+ * User signup is disabled
7684
7956
  */
7685
- 404: unknown;
7957
+ 403: unknown;
7686
7958
  };
7687
7959
  };
7960
+ };
7961
+ '/api/v1/users/{id}': {
7688
7962
  delete: {
7689
- req: ExpectedTransactionControllerUndoSkipData;
7963
+ req: UserControllerDeleteUserData;
7690
7964
  res: {
7691
7965
  /**
7692
- * Skip undone successfully
7693
- */
7694
- 200: ExpectedTransactionResponseDto;
7695
- /**
7696
- * Cannot undo - not in SKIPPED status
7966
+ * User deleted successfully
7697
7967
  */
7698
- 400: unknown;
7968
+ 204: void;
7699
7969
  /**
7700
- * Expected transaction not found
7970
+ * Cannot delete own account or insufficient permissions
7701
7971
  */
7702
- 404: unknown;
7972
+ 403: unknown;
7703
7973
  };
7704
7974
  };
7705
7975
  };
7706
- '/api/v1/{region}/bean/expected-transactions/{id}/match': {
7707
- post: {
7708
- req: ExpectedTransactionControllerConfirmMatchData;
7976
+ '/api/v1/users/{id}/info': {
7977
+ get: {
7978
+ req: UserControllerGetUserInfoData;
7709
7979
  res: {
7710
7980
  /**
7711
- * Match confirmed successfully
7981
+ * User info retrieved successfully
7712
7982
  */
7713
7983
  200: unknown;
7714
7984
  /**
7715
- * Cannot match - not in PENDING status
7716
- */
7717
- 400: unknown;
7718
- /**
7719
- * Expected or actual transaction not found
7720
- */
7721
- 404: unknown;
7722
- /**
7723
- * Actual transaction already matched to another rule
7985
+ * Cannot access other user info without admin permission
7724
7986
  */
7725
- 409: unknown;
7987
+ 403: unknown;
7726
7988
  };
7727
7989
  };
7728
- delete: {
7729
- req: ExpectedTransactionControllerUnmatchData;
7990
+ };
7991
+ '/api/v1/users/setting': {
7992
+ put: {
7993
+ req: UserControllerUpdateUserSettingData;
7730
7994
  res: {
7731
7995
  /**
7732
- * Match removed successfully
7996
+ * Settings updated successfully
7733
7997
  */
7734
7998
  200: unknown;
7735
7999
  /**
7736
- * Cannot unmatch - not in COMPLETED status
7737
- */
7738
- 400: unknown;
7739
- /**
7740
- * Expected transaction not found
8000
+ * Insufficient permissions
7741
8001
  */
7742
- 404: unknown;
8002
+ 403: unknown;
7743
8003
  };
7744
8004
  };
7745
8005
  };
7746
- '/api/v1/{region}/bean/expected-transactions/{id}/enter': {
7747
- post: {
7748
- req: ExpectedTransactionControllerEnterNowData;
8006
+ '/api/v1/users/settings-by-page': {
8007
+ get: {
8008
+ req: UserControllerGetAllUserSettingsByPageData;
7749
8009
  res: {
7750
8010
  /**
7751
- * Transaction created successfully
7752
- */
7753
- 201: unknown;
7754
- /**
7755
- * Cannot enter - not in PENDING status or missing accounts
7756
- */
7757
- 400: unknown;
7758
- /**
7759
- * Expected transaction or accounts not found
8011
+ * Settings list retrieved successfully
7760
8012
  */
7761
- 404: unknown;
8013
+ 200: unknown;
7762
8014
  };
7763
8015
  };
7764
8016
  };
7765
- '/api/v1/{region}/bean/recurring/forecast': {
8017
+ '/api/v1/users/asset-liability-summary': {
7766
8018
  get: {
7767
- req: ForecastControllerGetForecastData;
7768
8019
  res: {
7769
8020
  /**
7770
- * Forecast retrieved successfully
8021
+ * Summary retrieved successfully
7771
8022
  */
7772
- 200: ForecastResponseDto;
8023
+ 200: unknown;
7773
8024
  };
7774
8025
  };
7775
8026
  };
7776
- '/api/v1/{region}/reporting/portfolio/trends': {
8027
+ '/api/v1/admin/properties': {
7777
8028
  get: {
7778
- req: ReportingControllerGetPortfolioTrendsData;
7779
8029
  res: {
7780
8030
  /**
7781
- * Trends retrieved successfully
8031
+ * Properties retrieved successfully
7782
8032
  */
7783
- 200: PortfolioTrendsResponseDto;
8033
+ 200: unknown;
7784
8034
  /**
7785
- * User not authenticated
8035
+ * Unauthorized
7786
8036
  */
7787
8037
  401: unknown;
8038
+ /**
8039
+ * Forbidden - insufficient permissions
8040
+ */
8041
+ 403: unknown;
7788
8042
  };
7789
8043
  };
7790
8044
  };
7791
- '/api/v1/{region}/reporting/cash-flow/trends': {
8045
+ '/api/v1/admin/properties/{key}': {
7792
8046
  get: {
7793
- req: ReportingControllerGetCashFlowTrendsData;
8047
+ req: PropertyControllerGetByKeyData;
7794
8048
  res: {
7795
8049
  /**
7796
- * Cash-flow trends retrieved successfully
8050
+ * Property retrieved successfully
7797
8051
  */
7798
- 200: CashFlowTrendsResponseDto;
8052
+ 200: unknown;
7799
8053
  /**
7800
- * User not authenticated
8054
+ * Unauthorized
7801
8055
  */
7802
8056
  401: unknown;
8057
+ /**
8058
+ * Forbidden - insufficient permissions
8059
+ */
8060
+ 403: unknown;
8061
+ /**
8062
+ * Property not found
8063
+ */
8064
+ 404: unknown;
7803
8065
  };
7804
8066
  };
7805
- };
7806
- '/api/v1/{region}/reporting/snapshots/generate': {
7807
- post: {
7808
- req: ReportingControllerGenerateSnapshotData;
8067
+ put: {
8068
+ req: PropertyControllerUpdateData;
7809
8069
  res: {
7810
8070
  /**
7811
- * Snapshot generated successfully
8071
+ * Property updated successfully
7812
8072
  */
7813
- 200: GenerateSnapshotResponse;
8073
+ 200: unknown;
7814
8074
  /**
7815
- * Invalid date format
8075
+ * Unauthorized
7816
8076
  */
7817
- 400: unknown;
8077
+ 401: unknown;
7818
8078
  /**
7819
- * User not authenticated
8079
+ * Forbidden - insufficient permissions
8080
+ */
8081
+ 403: unknown;
8082
+ };
8083
+ };
8084
+ delete: {
8085
+ req: PropertyControllerDeleteData;
8086
+ res: {
8087
+ /**
8088
+ * Property deleted successfully
8089
+ */
8090
+ 204: void;
8091
+ /**
8092
+ * Unauthorized
7820
8093
  */
7821
8094
  401: unknown;
8095
+ /**
8096
+ * Forbidden - insufficient permissions
8097
+ */
8098
+ 403: unknown;
8099
+ /**
8100
+ * Property not found
8101
+ */
8102
+ 404: unknown;
7822
8103
  };
7823
8104
  };
7824
8105
  };
7825
- '/api/v1/{region}/reporting/snapshots/backfill': {
8106
+ '/api/v1/{region}/bean/recurring-rules': {
7826
8107
  post: {
7827
- req: ReportingControllerBackfillSnapshotsData;
8108
+ req: RecurringRuleControllerCreateData;
7828
8109
  res: {
7829
8110
  /**
7830
- * Backfill completed successfully
8111
+ * Rule created successfully
7831
8112
  */
7832
- 200: BackfillSnapshotsResponse;
8113
+ 201: RecurringRuleResponseDto;
7833
8114
  /**
7834
- * Invalid date format or range
8115
+ * Invalid input data (e.g., autoCreate without accounts)
7835
8116
  */
7836
8117
  400: unknown;
7837
8118
  /**
7838
- * User not authenticated
8119
+ * Rule with same name already exists
7839
8120
  */
7840
- 401: unknown;
8121
+ 409: unknown;
8122
+ };
8123
+ };
8124
+ get: {
8125
+ req: RecurringRuleControllerFindAllData;
8126
+ res: {
7841
8127
  /**
7842
- * Backfill already in progress for this user
8128
+ * Rules retrieved successfully
7843
8129
  */
7844
- 409: unknown;
8130
+ 200: Array<RecurringRuleResponseDto>;
7845
8131
  };
7846
8132
  };
7847
8133
  };
7848
- '/api/v1/users': {
7849
- delete: {
7850
- req: UserControllerDeleteOwnUserData;
8134
+ '/api/v1/{region}/bean/recurring-rules/from-transaction/{transactionId}': {
8135
+ post: {
8136
+ req: RecurringRuleControllerCreateFromTransactionData;
7851
8137
  res: {
7852
8138
  /**
7853
- * User deleted successfully
8139
+ * Rule created successfully
7854
8140
  */
7855
- 204: void;
8141
+ 201: RecurringRuleResponseDto;
7856
8142
  /**
7857
- * Invalid access token
8143
+ * Transaction not found
7858
8144
  */
7859
- 403: unknown;
8145
+ 404: ApiProblemResponseDto;
8146
+ /**
8147
+ * Rule with same name already exists or transaction already linked
8148
+ */
8149
+ 409: ApiProblemResponseDto;
7860
8150
  };
7861
8151
  };
8152
+ };
8153
+ '/api/v1/{region}/bean/recurring-rules/{id}': {
7862
8154
  get: {
7863
- req: UserControllerGetUserData;
8155
+ req: RecurringRuleControllerFindOneData;
7864
8156
  res: {
7865
8157
  /**
7866
- * User retrieved successfully
8158
+ * Rule retrieved successfully
7867
8159
  */
7868
- 200: unknown;
8160
+ 200: RecurringRuleResponseDto;
8161
+ /**
8162
+ * Rule not found
8163
+ */
8164
+ 404: unknown;
7869
8165
  };
7870
8166
  };
7871
- post: {
7872
- req: UserControllerSignupUserData;
8167
+ patch: {
8168
+ req: RecurringRuleControllerUpdateData;
7873
8169
  res: {
7874
8170
  /**
7875
- * User created successfully
8171
+ * Rule updated successfully
7876
8172
  */
7877
- 201: SignupResponseDto;
8173
+ 200: RecurringRuleResponseDto;
7878
8174
  /**
7879
- * Invalid Turnstile token (when Turnstile is enabled)
8175
+ * Invalid input data
7880
8176
  */
7881
8177
  400: unknown;
7882
8178
  /**
7883
- * User signup is disabled
8179
+ * Rule not found
7884
8180
  */
7885
- 403: unknown;
8181
+ 404: unknown;
7886
8182
  };
7887
8183
  };
7888
- };
7889
- '/api/v1/users/{id}': {
7890
8184
  delete: {
7891
- req: UserControllerDeleteUserData;
8185
+ req: RecurringRuleControllerDeleteData;
7892
8186
  res: {
7893
8187
  /**
7894
- * User deleted successfully
8188
+ * Rule deleted successfully
7895
8189
  */
7896
8190
  204: void;
7897
8191
  /**
7898
- * Cannot delete own account or insufficient permissions
8192
+ * Rule not found
7899
8193
  */
7900
- 403: unknown;
8194
+ 404: unknown;
7901
8195
  };
7902
8196
  };
7903
8197
  };
7904
- '/api/v1/users/{id}/info': {
8198
+ '/api/v1/{region}/bean/recurring-rules/{id}/stats': {
7905
8199
  get: {
7906
- req: UserControllerGetUserInfoData;
8200
+ req: RecurringRuleControllerGetWithStatsData;
7907
8201
  res: {
7908
8202
  /**
7909
- * User info retrieved successfully
8203
+ * Rule with stats retrieved successfully
7910
8204
  */
7911
- 200: unknown;
8205
+ 200: RecurringRuleWithStatsResponseDto;
7912
8206
  /**
7913
- * Cannot access other user info without admin permission
8207
+ * Rule not found
7914
8208
  */
7915
- 403: unknown;
8209
+ 404: unknown;
7916
8210
  };
7917
8211
  };
7918
8212
  };
7919
- '/api/v1/users/setting': {
7920
- put: {
7921
- req: UserControllerUpdateUserSettingData;
8213
+ '/api/v1/{region}/bean/expected-transactions': {
8214
+ get: {
8215
+ req: ExpectedTransactionControllerFindAllData;
7922
8216
  res: {
7923
8217
  /**
7924
- * Settings updated successfully
7925
- */
7926
- 200: unknown;
7927
- /**
7928
- * Insufficient permissions
8218
+ * Expected transactions retrieved successfully
7929
8219
  */
7930
- 403: unknown;
8220
+ 200: ExpectedTransactionListResponseDto;
7931
8221
  };
7932
8222
  };
7933
8223
  };
7934
- '/api/v1/users/settings-by-page': {
8224
+ '/api/v1/{region}/bean/expected-transactions/overdue': {
7935
8225
  get: {
7936
- req: UserControllerGetAllUserSettingsByPageData;
8226
+ req: ExpectedTransactionControllerFindOverdueData;
7937
8227
  res: {
7938
8228
  /**
7939
- * Settings list retrieved successfully
8229
+ * Overdue transactions retrieved successfully
7940
8230
  */
7941
- 200: unknown;
8231
+ 200: ExpectedTransactionListResponseDto;
7942
8232
  };
7943
8233
  };
7944
8234
  };
7945
- '/api/v1/users/asset-liability-summary': {
8235
+ '/api/v1/{region}/bean/expected-transactions/{id}': {
7946
8236
  get: {
8237
+ req: ExpectedTransactionControllerFindOneData;
7947
8238
  res: {
7948
8239
  /**
7949
- * Summary retrieved successfully
8240
+ * Expected transaction retrieved successfully
7950
8241
  */
7951
- 200: unknown;
8242
+ 200: ExpectedTransactionResponseDto;
8243
+ /**
8244
+ * Expected transaction not found
8245
+ */
8246
+ 404: unknown;
7952
8247
  };
7953
8248
  };
7954
8249
  };
7955
- '/api/v1/admin/properties': {
7956
- get: {
8250
+ '/api/v1/{region}/bean/expected-transactions/{id}/skip': {
8251
+ post: {
8252
+ req: ExpectedTransactionControllerSkipData;
7957
8253
  res: {
7958
8254
  /**
7959
- * Properties retrieved successfully
8255
+ * Expected transaction skipped successfully
7960
8256
  */
7961
- 200: unknown;
8257
+ 200: ExpectedTransactionResponseDto;
7962
8258
  /**
7963
- * Unauthorized
8259
+ * Cannot skip - not in PENDING status
7964
8260
  */
7965
- 401: unknown;
8261
+ 400: unknown;
7966
8262
  /**
7967
- * Forbidden - insufficient permissions
8263
+ * Expected transaction not found
7968
8264
  */
7969
- 403: unknown;
8265
+ 404: unknown;
7970
8266
  };
7971
8267
  };
7972
- };
7973
- '/api/v1/admin/properties/{key}': {
7974
- get: {
7975
- req: PropertyControllerGetByKeyData;
8268
+ delete: {
8269
+ req: ExpectedTransactionControllerUndoSkipData;
7976
8270
  res: {
7977
8271
  /**
7978
- * Property retrieved successfully
7979
- */
7980
- 200: unknown;
7981
- /**
7982
- * Unauthorized
8272
+ * Skip undone successfully
7983
8273
  */
7984
- 401: unknown;
8274
+ 204: void;
7985
8275
  /**
7986
- * Forbidden - insufficient permissions
8276
+ * Cannot undo - not in SKIPPED status
7987
8277
  */
7988
- 403: unknown;
8278
+ 400: unknown;
7989
8279
  /**
7990
- * Property not found
8280
+ * Expected transaction not found
7991
8281
  */
7992
8282
  404: unknown;
7993
8283
  };
7994
8284
  };
7995
- put: {
7996
- req: PropertyControllerUpdateData;
8285
+ };
8286
+ '/api/v1/{region}/bean/expected-transactions/{id}/match': {
8287
+ post: {
8288
+ req: ExpectedTransactionControllerConfirmMatchData;
7997
8289
  res: {
7998
8290
  /**
7999
- * Property updated successfully
8291
+ * Match confirmed successfully
8000
8292
  */
8001
8293
  200: unknown;
8002
8294
  /**
8003
- * Unauthorized
8295
+ * Cannot match - not in PENDING status
8004
8296
  */
8005
- 401: unknown;
8297
+ 400: unknown;
8006
8298
  /**
8007
- * Forbidden - insufficient permissions
8299
+ * Expected or actual transaction not found
8008
8300
  */
8009
- 403: unknown;
8301
+ 404: unknown;
8302
+ /**
8303
+ * Actual transaction already matched to another rule
8304
+ */
8305
+ 409: unknown;
8010
8306
  };
8011
8307
  };
8012
8308
  delete: {
8013
- req: PropertyControllerDeleteData;
8309
+ req: ExpectedTransactionControllerUnmatchData;
8014
8310
  res: {
8015
8311
  /**
8016
- * Property deleted successfully
8312
+ * Match removed successfully
8017
8313
  */
8018
8314
  204: void;
8019
8315
  /**
8020
- * Unauthorized
8316
+ * Cannot unmatch - not in COMPLETED status
8021
8317
  */
8022
- 401: unknown;
8318
+ 400: unknown;
8023
8319
  /**
8024
- * Forbidden - insufficient permissions
8320
+ * Expected transaction not found
8025
8321
  */
8026
- 403: unknown;
8322
+ 404: unknown;
8323
+ };
8324
+ };
8325
+ };
8326
+ '/api/v1/{region}/bean/expected-transactions/{id}/enter': {
8327
+ post: {
8328
+ req: ExpectedTransactionControllerEnterNowData;
8329
+ res: {
8027
8330
  /**
8028
- * Property not found
8331
+ * Transaction created successfully
8332
+ */
8333
+ 201: unknown;
8334
+ /**
8335
+ * Cannot enter - not in PENDING status or missing accounts
8336
+ */
8337
+ 400: unknown;
8338
+ /**
8339
+ * Expected transaction or accounts not found
8029
8340
  */
8030
8341
  404: unknown;
8031
8342
  };
8032
8343
  };
8033
8344
  };
8345
+ '/api/v1/{region}/bean/recurring/forecast': {
8346
+ get: {
8347
+ req: ForecastControllerGetForecastData;
8348
+ res: {
8349
+ /**
8350
+ * Forecast retrieved successfully
8351
+ */
8352
+ 200: ForecastResponseDto;
8353
+ };
8354
+ };
8355
+ };
8034
8356
  '/api/v1/{region}/bean/transaction-rules': {
8035
8357
  post: {
8036
8358
  req: TransactionRuleControllerCreateData;
@@ -8239,6 +8561,17 @@ type $OpenApiTs = {
8239
8561
  };
8240
8562
  };
8241
8563
  };
8564
+ '/api/v1/{region}/bean/categories': {
8565
+ get: {
8566
+ req: CategoryCatalogControllerListData;
8567
+ res: {
8568
+ /**
8569
+ * Category catalog retrieved successfully
8570
+ */
8571
+ 200: CategoryCatalogListResponseDto;
8572
+ };
8573
+ };
8574
+ };
8242
8575
  '/api/v1/{region}/bean/events': {
8243
8576
  post: {
8244
8577
  req: EventControllerCreateData;
@@ -8417,7 +8750,10 @@ type $OpenApiTs = {
8417
8750
  '/api/v1/{region}/bean/export/beancount': {
8418
8751
  get: {
8419
8752
  res: {
8420
- 200: unknown;
8753
+ /**
8754
+ * ZIP archive (application/zip) streamed as an attachment
8755
+ */
8756
+ 200: Blob | File;
8421
8757
  };
8422
8758
  };
8423
8759
  };
@@ -8798,6 +9134,17 @@ type $OpenApiTs = {
8798
9134
  };
8799
9135
  };
8800
9136
  };
9137
+ '/api/v1/bean/platforms/{id}/standards': {
9138
+ get: {
9139
+ req: PlatformControllerGetPlatformStandardsData;
9140
+ res: {
9141
+ /**
9142
+ * Resolved region plus the merged account-standard catalog of that region (groupable by productCategory client-side)
9143
+ */
9144
+ 200: PlatformStandardsResponseDto;
9145
+ };
9146
+ };
9147
+ };
8801
9148
  '/api/v1/bean/platforms/{id}': {
8802
9149
  put: {
8803
9150
  req: PlatformControllerUpdateData;
@@ -8942,10 +9289,48 @@ type $OpenApiTs = {
8942
9289
  };
8943
9290
  };
8944
9291
  };
9292
+ '/api/v1/{region}/community/parser-contributions': {
9293
+ post: {
9294
+ req: ParserContributionControllerCreateData;
9295
+ res: {
9296
+ /**
9297
+ * Issue created by the bot
9298
+ */
9299
+ 201: ParserContributionRelayResponseDto;
9300
+ /**
9301
+ * Unauthorized
9302
+ */
9303
+ 401: ApiProblemResponseDto;
9304
+ /**
9305
+ * Validation failed (institution slug, empty samples, row/cell size limits)
9306
+ */
9307
+ 422: ApiProblemResponseDto;
9308
+ /**
9309
+ * Rate limited (5 submissions per user per hour)
9310
+ */
9311
+ 429: ApiProblemResponseDto;
9312
+ /**
9313
+ * Relay not configured on this deployment — clients fall back to the clipboard flow
9314
+ */
9315
+ 501: ApiProblemResponseDto;
9316
+ /**
9317
+ * GitHub bot failure (upstream), safe to retry
9318
+ */
9319
+ 502: ApiProblemResponseDto;
9320
+ };
9321
+ };
9322
+ };
8945
9323
  '/api/v1/cache/flush': {
8946
9324
  post: {
8947
9325
  res: {
8948
- 201: unknown;
9326
+ /**
9327
+ * Cache flushed successfully
9328
+ */
9329
+ 200: unknown;
9330
+ /**
9331
+ * Admin access required
9332
+ */
9333
+ 403: ApiProblemResponseDto;
8949
9334
  };
8950
9335
  };
8951
9336
  };
@@ -9221,10 +9606,11 @@ declare class BeanTransactionsService {
9221
9606
  * @param data.offset Number of items to skip (default: 0)
9222
9607
  * @param data.dateFrom Filter by start date (inclusive), format: YYYY-MM-DD
9223
9608
  * @param data.dateTo Filter by end date (inclusive), format: YYYY-MM-DD
9224
- * @param data.status Filter by transaction status
9609
+ * @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).
9225
9610
  * @param data.search Search in narration and payee fields (max 200 chars)
9226
9611
  * @param data.accountId Filter by account ID (transactions with postings to this account)
9227
- * @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
9612
+ * @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).
9613
+ * @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.
9228
9614
  * @returns TransactionListResponseDto Transaction list
9229
9615
  * @throws ApiError
9230
9616
  */
@@ -9530,4 +9916,4 @@ type OpenAPIConfig = {
9530
9916
  };
9531
9917
  declare const OpenAPI: OpenAPIConfig;
9532
9918
 
9533
- 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 PlatformControllerGetPlatformListData, 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 };
9919
+ 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 };