@firela/api-types 0.0.0-canary.e7fcdb9d → 0.0.0-canary.e85e9088

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