@firela/api-types 0.0.0-canary.aa5c64ec → 0.0.0-canary.addbab34

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