@firela/api-types 0.0.0-canary.92e8f8e1 → 0.0.0-canary.9b21c9cd

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
@@ -239,15 +239,27 @@ type AccountStandardResponseDto = {
239
239
  */
240
240
  type: 'Assets' | 'Liabilities' | 'Income' | 'Expenses' | 'Equity';
241
241
  /**
242
- * Short localized display name
242
+ * 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
243
  */
244
244
  name?: string;
245
245
  /**
246
- * Account description (stable semantics only)
246
+ * 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.
247
+ */
248
+ aliases?: Array<string>;
249
+ /**
250
+ * 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).
251
+ */
252
+ searchTerms?: Array<string>;
253
+ /**
254
+ * 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).
255
+ */
256
+ currency?: string;
257
+ /**
258
+ * 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
259
  */
248
260
  description: string;
249
261
  /**
250
- * Account tags for categorization
262
+ * Account tags for categorization — structured metadata delivered verbatim (not localized, not xlf-managed). ADR-0131 class A.
251
263
  */
252
264
  tags: Array<string>;
253
265
  /**
@@ -457,7 +469,7 @@ type PostingResponseDto = {
457
469
  */
458
470
  account: string;
459
471
  /**
460
- * Amount as decimal string. Typed optional but always present in responses: interpolation fills any MISSING posting before it is persisted or returned.
472
+ * 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
473
  */
462
474
  units?: string;
463
475
  /**
@@ -669,7 +681,7 @@ type PostingDetailDto = {
669
681
  */
670
682
  account: string;
671
683
  /**
672
- * Amount as decimal string. Typed optional but always present in responses: interpolation fills any MISSING posting before it is persisted or returned.
684
+ * 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
685
  */
674
686
  units?: string;
675
687
  /**
@@ -799,6 +811,94 @@ type flag2 = 'CLEARED' | 'PENDING' | 'PADDING' | 'SUMMARIZE' | 'TRANSFER' | 'CON
799
811
  * Transaction status
800
812
  */
801
813
  type status2 = 'ACTIVE' | 'VOIDED' | 'SUPERSEDED';
814
+ type TransactionListItemDto = {
815
+ /**
816
+ * Transaction ID
817
+ */
818
+ id: string;
819
+ /**
820
+ * Transaction date
821
+ */
822
+ date: string;
823
+ /**
824
+ * Transaction flag
825
+ */
826
+ flag?: 'CLEARED' | 'PENDING' | 'PADDING' | 'SUMMARIZE' | 'TRANSFER' | 'CONVERSIONS';
827
+ /**
828
+ * Custom flag (if not using standard flags)
829
+ */
830
+ customFlag?: string;
831
+ /**
832
+ * Payee name
833
+ */
834
+ payee?: string;
835
+ /**
836
+ * Transaction narration
837
+ */
838
+ narration: string;
839
+ /**
840
+ * Transaction tags
841
+ */
842
+ tags: Array<string>;
843
+ /**
844
+ * Transaction links
845
+ */
846
+ links: Array<string>;
847
+ /**
848
+ * Transaction metadata
849
+ */
850
+ meta?: {
851
+ [key: string]: unknown;
852
+ };
853
+ /**
854
+ * Transaction status
855
+ */
856
+ status: 'ACTIVE' | 'VOIDED' | 'SUPERSEDED';
857
+ /**
858
+ * Source type (free-form string from transaction metadata, e.g. import, api)
859
+ */
860
+ sourceType?: string;
861
+ /**
862
+ * Source platform (e.g., alipay, wechat)
863
+ */
864
+ sourcePlatform?: string;
865
+ /**
866
+ * Transaction postings
867
+ */
868
+ postings: Array<PostingDetailDto>;
869
+ /**
870
+ * Created at timestamp
871
+ */
872
+ createdAt: string;
873
+ /**
874
+ * Voided at timestamp (if voided)
875
+ */
876
+ voidedAt?: string;
877
+ /**
878
+ * User ID who voided this transaction
879
+ */
880
+ voidedBy?: string;
881
+ /**
882
+ * Correction reason (if voided or superseded)
883
+ */
884
+ correctionReason?: string;
885
+ /**
886
+ * ID of the transaction that supersedes this one (set when status=SUPERSEDED)
887
+ */
888
+ supersededBy?: string;
889
+ /**
890
+ * ID of the transaction this one corrected/replaced (back-link on the replacement)
891
+ */
892
+ originalTxn?: string;
893
+ /**
894
+ * 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.
895
+ */
896
+ viewpointAmount?: string;
897
+ /**
898
+ * Currency of viewpointAmount. A row spanning multiple currencies takes the largest-magnitude currency group (known simplification, ADR-0126).
899
+ */
900
+ viewpointCurrency?: string;
901
+ };
802
902
  type BalanceByCurrencyDto = {
803
903
  /**
804
904
  * ISO 4217 currency code
@@ -825,7 +925,7 @@ type ExchangeRateWarningDto = {
825
925
  };
826
926
  type TransactionListSummaryDto = {
827
927
  /**
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.
928
+ * 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
929
  */
830
930
  totalAmount: string;
831
931
  /**
@@ -841,11 +941,29 @@ type TransactionListSummaryDto = {
841
941
  */
842
942
  warnings?: Array<ExchangeRateWarningDto>;
843
943
  };
944
+ type TransactionListViewpointDto = {
945
+ /**
946
+ * Viewpoint type (only category drill-down carries a viewpoint today)
947
+ */
948
+ type: 'category';
949
+ /**
950
+ * Flow root the category account set is restricted to
951
+ */
952
+ flow: 'income' | 'expense';
953
+ };
954
+ /**
955
+ * Viewpoint type (only category drill-down carries a viewpoint today)
956
+ */
957
+ type type2 = 'category';
958
+ /**
959
+ * Flow root the category account set is restricted to
960
+ */
961
+ type flow = 'income' | 'expense';
844
962
  type TransactionListResponseDto = {
845
963
  /**
846
964
  * List of transactions
847
965
  */
848
- data: Array<TransactionDetailDto>;
966
+ data: Array<TransactionListItemDto>;
849
967
  /**
850
968
  * Total count of matching transactions
851
969
  */
@@ -862,6 +980,10 @@ type TransactionListResponseDto = {
862
980
  * 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
981
  */
864
982
  summary?: TransactionListSummaryDto;
983
+ /**
984
+ * 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).
985
+ */
986
+ viewpoint?: TransactionListViewpointDto;
865
987
  };
866
988
  type TagSuggestionDto = {
867
989
  /**
@@ -1054,7 +1176,7 @@ type ReviewSummaryDto = {
1054
1176
  /**
1055
1177
  * Review type
1056
1178
  */
1057
- type type2 = 'DUPLICATE' | 'RULE_MATCH' | 'PAYEE_MATCH' | 'ACCOUNT_VALIDATION' | 'PIPELINE_ERROR';
1179
+ type type3 = 'DUPLICATE' | 'RULE_MATCH' | 'PAYEE_MATCH' | 'ACCOUNT_VALIDATION' | 'PIPELINE_ERROR';
1058
1180
  /**
1059
1181
  * Review status
1060
1182
  */
@@ -1418,7 +1540,7 @@ type UpdatePayeeDto = {
1418
1540
  */
1419
1541
  customTags?: Array<string>;
1420
1542
  /**
1421
- * Metadata for extended information (location, notes, contact info, etc.). Will merge with existing metadata.
1543
+ * Metadata for extended information (location, notes, contact info, etc.)
1422
1544
  */
1423
1545
  meta?: {
1424
1546
  [key: string]: unknown;
@@ -1708,451 +1830,425 @@ type UpdateCommodityDto = {
1708
1830
  [key: string]: unknown;
1709
1831
  };
1710
1832
  };
1711
- type CreateBeanPriceDto = {
1833
+ type CurrencyBalanceDto = {
1712
1834
  /**
1713
- * Currency being priced (e.g., USD, AAPL, BTC)
1835
+ * ISO 4217 currency code
1714
1836
  */
1715
1837
  currency: string;
1716
1838
  /**
1717
- * Quote currency (pricing currency, e.g., CNY, EUR)
1839
+ * Balance amount
1718
1840
  */
1719
- quoteCurrency: string;
1841
+ balance: string;
1842
+ };
1843
+ type TimeSeriesPointDto = {
1720
1844
  /**
1721
- * Price amount (MUST be >= 0 per Beancount spec, supports up to 15 decimal places). Zero allowed for conversion entries, negative strictly prohibited.
1845
+ * Date in YYYY-MM-DD format
1722
1846
  */
1723
- amount: number;
1847
+ date: string;
1724
1848
  /**
1725
- * Price date (ISO 8601 format)
1849
+ * Value at this date (in base currency)
1726
1850
  */
1727
- date: string;
1851
+ value: string;
1728
1852
  /**
1729
- * Metadata (validated by Zod schema, max field lengths enforced)
1853
+ * Change from previous point
1730
1854
  */
1731
- metadata?: {
1855
+ change?: {
1732
1856
  [key: string]: unknown;
1733
1857
  };
1734
- };
1735
- type PriceResponseDto = {
1736
1858
  /**
1737
- * Unique identifier
1859
+ * Total assets at this date (in base currency)
1738
1860
  */
1739
- id: string;
1861
+ assets?: string;
1740
1862
  /**
1741
- * User ID (owner of the price)
1863
+ * Total liabilities at this date (in base currency)
1742
1864
  */
1743
- userId: string;
1865
+ liabilities?: string;
1744
1866
  /**
1745
- * Currency being priced (e.g., USD, AAPL, BTC)
1867
+ * Multi-currency breakdown for this point
1746
1868
  */
1747
- currency: string;
1869
+ byCurrency?: Array<CurrencyBalanceDto>;
1870
+ };
1871
+ type TrendSummaryDto = {
1748
1872
  /**
1749
- * Quote currency (pricing currency, e.g., USD, CNY)
1873
+ * Value at start of period
1750
1874
  */
1751
- quoteCurrency: string;
1875
+ startValue: string;
1752
1876
  /**
1753
- * Price amount (corresponds to Beancount Amount.number). Supports up to 15 decimal places.
1877
+ * Value at end of period
1754
1878
  */
1755
- amount: number;
1879
+ endValue: string;
1756
1880
  /**
1757
- * Price date (ISO 8601 format). Represents the date this price was valid.
1881
+ * Total change over period
1758
1882
  */
1759
- date: string;
1883
+ totalChange: string;
1760
1884
  /**
1761
- * Metadata (corresponds to Beancount meta field). Contains source, confidence, note, etc.
1885
+ * Total change percentage
1762
1886
  */
1763
- meta: {
1764
- [key: string]: unknown;
1765
- };
1887
+ totalChangePercentage: string;
1888
+ };
1889
+ type MultiCurrencyPointDto = {
1766
1890
  /**
1767
- * Creation timestamp
1891
+ * Date in YYYY-MM-DD format
1768
1892
  */
1769
- createdAt: string;
1893
+ date: string;
1770
1894
  /**
1771
- * Last update timestamp
1895
+ * Balances by currency
1772
1896
  */
1773
- updatedAt: string;
1897
+ byCurrency: Array<CurrencyBalanceDto>;
1774
1898
  };
1775
- type PriceListResponseDto = {
1899
+ type PortfolioTrendsResponseDto = {
1776
1900
  /**
1777
- * List of prices
1901
+ * Time series data points
1778
1902
  */
1779
- items: Array<PriceResponseDto>;
1903
+ series: Array<TimeSeriesPointDto>;
1780
1904
  /**
1781
- * Total number of prices
1905
+ * Period summary
1782
1906
  */
1783
- total: number;
1784
- };
1785
- type UpdateBeanPriceDto = {
1907
+ summary: TrendSummaryDto;
1786
1908
  /**
1787
- * Currency being priced
1909
+ * Period requested
1788
1910
  */
1789
- currency?: string;
1911
+ period: string;
1790
1912
  /**
1791
- * Quote currency (pricing currency)
1913
+ * Data granularity
1792
1914
  */
1793
- quoteCurrency?: string;
1915
+ granularity: string;
1794
1916
  /**
1795
- * Price amount (MUST be >= 0 per Beancount spec)
1917
+ * Base currency for converted values
1796
1918
  */
1797
- amount?: number;
1919
+ currency: string;
1798
1920
  /**
1799
- * Price date (ISO 8601 format)
1921
+ * Multi-currency time series (each point has currency breakdown)
1800
1922
  */
1801
- date?: string;
1923
+ byCurrency?: Array<MultiCurrencyPointDto>;
1802
1924
  /**
1803
- * Metadata
1925
+ * Exchange rate warnings
1804
1926
  */
1805
- metadata?: {
1806
- [key: string]: unknown;
1807
- };
1927
+ warnings?: Array<ExchangeRateWarningDto>;
1808
1928
  };
1809
- type CreateRecurringRuleDto = {
1929
+ type CashFlowPointDto = {
1810
1930
  /**
1811
- * Rule name (unique per user)
1931
+ * Month key (YYYY-MM)
1812
1932
  */
1813
- name: string;
1933
+ month: string;
1814
1934
  /**
1815
- * Icon emoji
1935
+ * Income in base currency (absolute, converted)
1816
1936
  */
1817
- icon?: string;
1937
+ income: string;
1818
1938
  /**
1819
- * Recurring frequency
1939
+ * Expense in base currency (absolute, converted)
1820
1940
  */
1821
- frequency: 'WEEKLY' | 'BIWEEKLY' | 'MONTHLY' | 'BIMONTHLY' | 'QUARTERLY' | 'YEARLY' | 'CUSTOM';
1941
+ expense: string;
1822
1942
  /**
1823
- * Expected amount (positive number)
1943
+ * netSavings = income − expense (savings positive)
1824
1944
  */
1825
- expectedAmount: number;
1945
+ netSavings: string;
1946
+ };
1947
+ type CashFlowTrendSummaryDto = {
1826
1948
  /**
1827
- * Expected day of month (1-31)
1949
+ * Total income across the period
1828
1950
  */
1829
- expectedDay?: number;
1951
+ totalIncome: string;
1830
1952
  /**
1831
- * Custom interval in days (required for CUSTOM frequency)
1953
+ * Total expense across the period
1832
1954
  */
1833
- customIntervalDays?: number;
1955
+ totalExpense: string;
1834
1956
  /**
1835
- * Currency code
1957
+ * income − expense across the period
1836
1958
  */
1837
- currency: string;
1959
+ totalNetSavings: string;
1838
1960
  /**
1839
- * Payee matching pattern (supports wildcards)
1961
+ * totalNetSavings divided by the window length (N months, incl. zero-filled)
1840
1962
  */
1841
- matchPayeePattern?: string;
1963
+ averageMonthlyNetSavings: string;
1964
+ };
1965
+ type CashFlowTrendsResponseDto = {
1842
1966
  /**
1843
- * Amount tolerance percentage (0-1)
1967
+ * Monthly cash-flow series (fixed N-month window, zero-filled)
1844
1968
  */
1845
- matchAmountTolerance: number;
1969
+ series: Array<CashFlowPointDto>;
1846
1970
  /**
1847
- * Default expense account for auto-create
1971
+ * Period totals
1848
1972
  */
1849
- defaultExpenseAccount?: string;
1973
+ summary: CashFlowTrendSummaryDto;
1850
1974
  /**
1851
- * Default payment account for auto-create
1975
+ * Period requested
1852
1976
  */
1853
- defaultPaymentAccount?: string;
1977
+ period: string;
1854
1978
  /**
1855
- * Default payee for auto-create
1979
+ * Data granularity (v1 returns month buckets)
1856
1980
  */
1857
- defaultPayee?: string;
1981
+ granularity: string;
1858
1982
  /**
1859
- * Auto-create transaction when expected date arrives
1983
+ * Base currency for converted values
1860
1984
  */
1861
- autoCreate: boolean;
1985
+ currency: string;
1862
1986
  /**
1863
- * Rule start date (ISO format)
1987
+ * Exchange rate warnings (e.g. missing rate for a currency)
1864
1988
  */
1865
- startDate?: string;
1989
+ warnings?: Array<ExchangeRateWarningDto>;
1990
+ };
1991
+ type GenerateSnapshotBody = unknown;
1992
+ type GenerateSnapshotResponse = unknown;
1993
+ type BackfillSnapshotsBody = unknown;
1994
+ type BackfillSnapshotsResponse = unknown;
1995
+ type CreateBeanPriceDto = {
1866
1996
  /**
1867
- * Rule end date (ISO format)
1997
+ * Currency being priced (e.g., USD, AAPL, BTC)
1868
1998
  */
1869
- endDate?: string;
1870
- };
1871
- /**
1872
- * Recurring frequency
1873
- */
1874
- type frequency = 'WEEKLY' | 'BIWEEKLY' | 'MONTHLY' | 'BIMONTHLY' | 'QUARTERLY' | 'YEARLY' | 'CUSTOM';
1875
- type RecurringRuleResponseDto = {
1999
+ currency: string;
1876
2000
  /**
1877
- * Rule ID
2001
+ * Quote currency (pricing currency, e.g., CNY, EUR)
1878
2002
  */
1879
- id: string;
2003
+ quoteCurrency: string;
1880
2004
  /**
1881
- * User ID
2005
+ * Price amount (MUST be >= 0 per Beancount spec, supports up to 15 decimal places). Zero allowed for conversion entries, negative strictly prohibited.
1882
2006
  */
1883
- userId: string;
2007
+ amount: number;
1884
2008
  /**
1885
- * Rule name
2009
+ * Price date (ISO 8601 format)
1886
2010
  */
1887
- name: string;
2011
+ date: string;
1888
2012
  /**
1889
- * Icon emoji
2013
+ * Metadata (validated by Zod schema, max field lengths enforced)
1890
2014
  */
1891
- icon?: {
2015
+ metadata?: {
1892
2016
  [key: string]: unknown;
1893
2017
  };
2018
+ };
2019
+ type PriceResponseDto = {
1894
2020
  /**
1895
- * Recurring frequency
1896
- */
1897
- frequency: string;
1898
- /**
1899
- * Expected amount
1900
- */
1901
- expectedAmount: number;
1902
- /**
1903
- * Expected day of month
2021
+ * Unique identifier
1904
2022
  */
1905
- expectedDay?: {
1906
- [key: string]: unknown;
1907
- };
2023
+ id: string;
1908
2024
  /**
1909
- * Custom interval in days
2025
+ * User ID (owner of the price)
1910
2026
  */
1911
- customIntervalDays?: {
1912
- [key: string]: unknown;
1913
- };
2027
+ userId: string;
1914
2028
  /**
1915
- * Currency code
2029
+ * Currency being priced (e.g., USD, AAPL, BTC)
1916
2030
  */
1917
2031
  currency: string;
1918
2032
  /**
1919
- * Payee matching pattern
2033
+ * Quote currency (pricing currency, e.g., USD, CNY)
1920
2034
  */
1921
- matchPayeePattern?: {
1922
- [key: string]: unknown;
1923
- };
2035
+ quoteCurrency: string;
1924
2036
  /**
1925
- * Amount tolerance percentage
2037
+ * Price amount (corresponds to Beancount Amount.number). Supports up to 15 decimal places.
1926
2038
  */
1927
- matchAmountTolerance: number;
2039
+ amount: number;
1928
2040
  /**
1929
- * Default expense account
2041
+ * Price date (ISO 8601 format). Represents the date this price was valid.
1930
2042
  */
1931
- defaultExpenseAccount?: {
1932
- [key: string]: unknown;
1933
- };
2043
+ date: string;
1934
2044
  /**
1935
- * Default payment account
2045
+ * Metadata (corresponds to Beancount meta field). Contains source, confidence, note, etc.
1936
2046
  */
1937
- defaultPaymentAccount?: {
2047
+ meta: {
1938
2048
  [key: string]: unknown;
1939
2049
  };
1940
2050
  /**
1941
- * Default payee
2051
+ * Creation timestamp
1942
2052
  */
1943
- defaultPayee?: {
1944
- [key: string]: unknown;
1945
- };
2053
+ createdAt: string;
1946
2054
  /**
1947
- * Whether rule is active
2055
+ * Last update timestamp
1948
2056
  */
1949
- isActive: boolean;
2057
+ updatedAt: string;
2058
+ };
2059
+ type PriceListResponseDto = {
1950
2060
  /**
1951
- * Rule start date (YYYY-MM-DD)
2061
+ * List of prices
1952
2062
  */
1953
- startDate: string;
2063
+ items: Array<PriceResponseDto>;
1954
2064
  /**
1955
- * Rule end date (YYYY-MM-DD)
2065
+ * Total number of prices
1956
2066
  */
1957
- endDate?: {
1958
- [key: string]: unknown;
1959
- };
2067
+ total: number;
2068
+ };
2069
+ type UpdateBeanPriceDto = {
1960
2070
  /**
1961
- * Auto-create transaction on expected date
2071
+ * Currency being priced
1962
2072
  */
1963
- autoCreate: boolean;
2073
+ currency?: string;
1964
2074
  /**
1965
- * Last matched occurrence date (YYYY-MM-DD)
2075
+ * Quote currency (pricing currency)
1966
2076
  */
1967
- lastOccurrence?: {
1968
- [key: string]: unknown;
1969
- };
2077
+ quoteCurrency?: string;
1970
2078
  /**
1971
- * Total matched transactions count
2079
+ * Price amount (MUST be >= 0 per Beancount spec)
1972
2080
  */
1973
- totalCount: number;
2081
+ amount?: number;
1974
2082
  /**
1975
- * Created at timestamp
2083
+ * Price date (ISO 8601 format)
1976
2084
  */
1977
- createdAt: string;
2085
+ date?: string;
1978
2086
  /**
1979
- * Updated at timestamp
2087
+ * Metadata
1980
2088
  */
1981
- updatedAt: string;
2089
+ metadata?: {
2090
+ [key: string]: unknown;
2091
+ };
1982
2092
  };
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;
2093
+ type DeleteOwnUserDto = {
1992
2094
  /**
1993
- * Optional icon emoji
2095
+ * Access token for user verification
1994
2096
  */
1995
- icon?: string;
2097
+ accessToken: string;
1996
2098
  };
1997
- type RecurringRuleWithStatsResponseDto = {
2099
+ type UserSettingsResponseDto = {
1998
2100
  /**
1999
- * Rule ID
2101
+ * 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
2102
  */
2001
- id: string;
2103
+ baseCurrency: string | null;
2104
+ };
2105
+ type UserResponseDto = {
2002
2106
  /**
2003
2107
  * User ID
2004
2108
  */
2005
- userId: string;
2006
- /**
2007
- * Rule name
2008
- */
2009
- name: string;
2109
+ id: string;
2010
2110
  /**
2011
- * Icon emoji
2111
+ * Assigned user role
2012
2112
  */
2013
- icon?: {
2014
- [key: string]: unknown;
2015
- };
2113
+ role: string;
2016
2114
  /**
2017
- * Recurring frequency
2115
+ * Permission strings
2018
2116
  */
2019
- frequency: string;
2117
+ permissions: Array<string>;
2020
2118
  /**
2021
- * Expected amount
2119
+ * User settings
2022
2120
  */
2023
- expectedAmount: number;
2121
+ settings: UserSettingsResponseDto;
2122
+ };
2123
+ type SignupDto = {
2024
2124
  /**
2025
- * Expected day of month
2125
+ * Cloudflare Turnstile verification token (optional when Turnstile disabled)
2026
2126
  */
2027
- expectedDay?: {
2028
- [key: string]: unknown;
2029
- };
2127
+ turnstileToken?: string;
2128
+ };
2129
+ type SignupResponseDto = {
2030
2130
  /**
2031
- * Custom interval in days
2131
+ * JWT auth token
2032
2132
  */
2033
- customIntervalDays?: {
2034
- [key: string]: unknown;
2035
- };
2133
+ authToken: string;
2036
2134
  /**
2037
- * Currency code
2135
+ * Auto-generated access token
2038
2136
  */
2039
- currency: string;
2137
+ accessToken: string;
2040
2138
  /**
2041
- * Payee matching pattern
2139
+ * Assigned user role
2042
2140
  */
2043
- matchPayeePattern?: {
2044
- [key: string]: unknown;
2045
- };
2141
+ role: 'USER' | 'ADMIN' | 'DEMO' | 'INACTIVE' | 'PAID' | 'OPS';
2142
+ };
2143
+ /**
2144
+ * Assigned user role
2145
+ */
2146
+ type role = 'USER' | 'ADMIN' | 'DEMO' | 'INACTIVE' | 'PAID' | 'OPS';
2147
+ type UpdateUserSettingDto = {
2046
2148
  /**
2047
- * Amount tolerance percentage
2149
+ * Security ID
2048
2150
  */
2049
- matchAmountTolerance: number;
2151
+ secId?: number;
2050
2152
  /**
2051
- * Default expense account
2153
+ * Annual interest rate
2052
2154
  */
2053
- defaultExpenseAccount?: {
2054
- [key: string]: unknown;
2055
- };
2155
+ annualInterestRate?: number;
2056
2156
  /**
2057
- * Default payment account
2157
+ * Currency code
2058
2158
  */
2059
- defaultPaymentAccount?: {
2060
- [key: string]: unknown;
2061
- };
2159
+ currency?: string;
2062
2160
  /**
2063
- * Default payee
2161
+ * Base currency code
2064
2162
  */
2065
- defaultPayee?: {
2066
- [key: string]: unknown;
2067
- };
2163
+ baseCurrency?: string;
2068
2164
  /**
2069
- * Whether rule is active
2165
+ * Benchmark symbol
2070
2166
  */
2071
- isActive: boolean;
2167
+ benchmark?: string;
2072
2168
  /**
2073
- * Rule start date (YYYY-MM-DD)
2169
+ * Color scheme
2074
2170
  */
2075
- startDate: string;
2171
+ colorScheme?: 'DARK' | 'LIGHT';
2076
2172
  /**
2077
- * Rule end date (YYYY-MM-DD)
2173
+ * Date range filter
2078
2174
  */
2079
- endDate?: {
2080
- [key: string]: unknown;
2081
- };
2175
+ dateRange?: string;
2082
2176
  /**
2083
- * Auto-create transaction on expected date
2177
+ * Emergency fund amount
2084
2178
  */
2085
- autoCreate: boolean;
2179
+ emergencyFund?: number;
2086
2180
  /**
2087
- * Last matched occurrence date (YYYY-MM-DD)
2181
+ * Account filter IDs
2088
2182
  */
2089
- lastOccurrence?: {
2090
- [key: string]: unknown;
2091
- };
2183
+ 'filters.accounts'?: Array<string>;
2092
2184
  /**
2093
- * Total matched transactions count
2185
+ * Asset class filters
2094
2186
  */
2095
- totalCount: number;
2187
+ 'filters.assetClasses'?: Array<string>;
2096
2188
  /**
2097
- * Created at timestamp
2189
+ * Data source filter
2098
2190
  */
2099
- createdAt: string;
2191
+ 'filters.dataSource'?: string;
2100
2192
  /**
2101
- * Updated at timestamp
2193
+ * Symbol filter
2102
2194
  */
2103
- updatedAt: string;
2195
+ 'filters.symbol'?: string;
2104
2196
  /**
2105
- * Number of pending expected transactions
2197
+ * Tag filters
2106
2198
  */
2107
- pendingCount: number;
2199
+ 'filters.tags'?: Array<string>;
2108
2200
  /**
2109
- * Number of overdue expected transactions
2201
+ * Enable experimental features
2110
2202
  */
2111
- overdueCount: number;
2203
+ isExperimentalFeatures?: boolean;
2112
2204
  /**
2113
- * Next expected date (YYYY-MM-DD)
2205
+ * Enable restricted view mode
2114
2206
  */
2115
- nextExpectedDate?: {
2116
- [key: string]: unknown;
2117
- };
2207
+ isRestrictedView?: boolean;
2118
2208
  /**
2119
- * Total amount of all matched transactions
2209
+ * Language code
2120
2210
  */
2121
- totalAmount: number;
2211
+ language?: string;
2122
2212
  /**
2123
- * Average amount per transaction
2213
+ * Locale code
2124
2214
  */
2125
- averageAmount: number;
2215
+ locale?: string;
2126
2216
  /**
2127
- * Number of matched transactions
2217
+ * Projected total amount
2128
2218
  */
2129
- transactionCount: number;
2219
+ projectedTotalAmount?: number;
2130
2220
  /**
2131
- * First matched transaction date (YYYY-MM-DD)
2221
+ * Retirement date in ISO 8601 format
2132
2222
  */
2133
- firstDate?: {
2134
- [key: string]: unknown;
2135
- };
2223
+ retirementDate?: string;
2136
2224
  /**
2137
- * Last matched transaction date (YYYY-MM-DD)
2225
+ * Savings rate percentage
2138
2226
  */
2139
- lastDate?: {
2140
- [key: string]: unknown;
2141
- };
2227
+ savingsRate?: number;
2142
2228
  /**
2143
- * Amount variance (standard deviation squared)
2229
+ * View mode
2144
2230
  */
2145
- variance: number;
2231
+ viewMode?: 'DEFAULT' | 'ZEN';
2232
+ };
2233
+ /**
2234
+ * Color scheme
2235
+ */
2236
+ type colorScheme = 'DARK' | 'LIGHT';
2237
+ /**
2238
+ * View mode
2239
+ */
2240
+ type viewMode = 'DEFAULT' | 'ZEN';
2241
+ type UpdatePropertyDto = {
2146
2242
  /**
2147
- * Number of upcoming expected transactions
2243
+ * Property value
2148
2244
  */
2149
- upcomingCount: number;
2245
+ value: string;
2150
2246
  };
2151
- type UpdateRecurringRuleDto = {
2247
+ type CreateRecurringRuleDto = {
2152
2248
  /**
2153
- * Rule name
2249
+ * Rule name (unique per user)
2154
2250
  */
2155
- name?: string;
2251
+ name: string;
2156
2252
  /**
2157
2253
  * Icon emoji
2158
2254
  */
@@ -2160,17 +2256,17 @@ type UpdateRecurringRuleDto = {
2160
2256
  /**
2161
2257
  * Recurring frequency
2162
2258
  */
2163
- frequency?: 'WEEKLY' | 'BIWEEKLY' | 'MONTHLY' | 'BIMONTHLY' | 'QUARTERLY' | 'YEARLY' | 'CUSTOM';
2259
+ frequency: 'WEEKLY' | 'BIWEEKLY' | 'MONTHLY' | 'BIMONTHLY' | 'QUARTERLY' | 'YEARLY' | 'CUSTOM';
2164
2260
  /**
2165
- * Expected amount
2261
+ * Expected amount (positive number)
2166
2262
  */
2167
- expectedAmount?: number;
2263
+ expectedAmount: number;
2168
2264
  /**
2169
2265
  * Expected day of month (1-31)
2170
2266
  */
2171
2267
  expectedDay?: number;
2172
2268
  /**
2173
- * Custom interval in days
2269
+ * Custom interval in days (required for CUSTOM frequency)
2174
2270
  */
2175
2271
  customIntervalDays?: number;
2176
2272
  /**
@@ -2178,109 +2274,141 @@ type UpdateRecurringRuleDto = {
2178
2274
  */
2179
2275
  currency?: string;
2180
2276
  /**
2181
- * Payee matching pattern
2277
+ * Payee matching pattern (supports wildcards)
2182
2278
  */
2183
2279
  matchPayeePattern?: string;
2184
2280
  /**
2185
2281
  * Amount tolerance percentage (0-1)
2186
2282
  */
2187
- matchAmountTolerance?: number;
2283
+ matchAmountTolerance: number;
2188
2284
  /**
2189
- * Default expense account
2285
+ * Default expense account for auto-create
2190
2286
  */
2191
2287
  defaultExpenseAccount?: string;
2192
2288
  /**
2193
- * Default payment account
2289
+ * Default payment account for auto-create
2194
2290
  */
2195
2291
  defaultPaymentAccount?: string;
2196
2292
  /**
2197
- * Default payee
2293
+ * Default payee for auto-create
2198
2294
  */
2199
2295
  defaultPayee?: string;
2200
2296
  /**
2201
- * Auto-create transaction
2297
+ * Auto-create transaction when expected date arrives
2202
2298
  */
2203
- autoCreate?: boolean;
2299
+ autoCreate: boolean;
2204
2300
  /**
2205
- * Rule active status
2301
+ * Rule start date (ISO format)
2206
2302
  */
2207
- isActive?: boolean;
2303
+ startDate?: string;
2208
2304
  /**
2209
2305
  * Rule end date (ISO format)
2210
2306
  */
2211
2307
  endDate?: string;
2212
2308
  };
2213
- type ExpectedTransactionRuleDto = {
2309
+ /**
2310
+ * Recurring frequency
2311
+ */
2312
+ type frequency = 'WEEKLY' | 'BIWEEKLY' | 'MONTHLY' | 'BIMONTHLY' | 'QUARTERLY' | 'YEARLY' | 'CUSTOM';
2313
+ type RecurringRuleResponseDto = {
2314
+ /**
2315
+ * Rule ID
2316
+ */
2317
+ id: string;
2318
+ /**
2319
+ * User ID
2320
+ */
2321
+ userId: string;
2214
2322
  /**
2215
2323
  * Rule name
2216
2324
  */
2217
2325
  name: string;
2218
2326
  /**
2219
- * Rule icon
2327
+ * Icon emoji
2220
2328
  */
2221
2329
  icon?: {
2222
2330
  [key: string]: unknown;
2223
2331
  };
2224
2332
  /**
2225
- * Rule frequency
2333
+ * Recurring frequency
2226
2334
  */
2227
2335
  frequency: string;
2228
2336
  /**
2229
- * Currency code
2337
+ * Expected amount
2230
2338
  */
2231
- currency: string;
2232
- };
2233
- type ExpectedTransactionResponseDto = {
2339
+ expectedAmount: number;
2234
2340
  /**
2235
- * Expected transaction ID
2341
+ * Expected day of month
2236
2342
  */
2237
- id: string;
2343
+ expectedDay?: {
2344
+ [key: string]: unknown;
2345
+ };
2238
2346
  /**
2239
- * User ID
2347
+ * Custom interval in days
2240
2348
  */
2241
- userId: string;
2349
+ customIntervalDays?: {
2350
+ [key: string]: unknown;
2351
+ };
2242
2352
  /**
2243
- * Associated rule ID
2353
+ * Currency code
2244
2354
  */
2245
- ruleId: string;
2355
+ currency: string;
2246
2356
  /**
2247
- * Expected date (YYYY-MM-DD)
2357
+ * Payee matching pattern
2248
2358
  */
2249
- expectedDate: string;
2359
+ matchPayeePattern?: {
2360
+ [key: string]: unknown;
2361
+ };
2250
2362
  /**
2251
- * Expected amount
2363
+ * Amount tolerance percentage
2252
2364
  */
2253
- expectedAmount: number;
2365
+ matchAmountTolerance: number;
2254
2366
  /**
2255
- * Status (PENDING, COMPLETED, SKIPPED)
2367
+ * Default expense account
2256
2368
  */
2257
- status: string;
2369
+ defaultExpenseAccount?: {
2370
+ [key: string]: unknown;
2371
+ };
2258
2372
  /**
2259
- * Matched transaction ID
2373
+ * Default payment account
2260
2374
  */
2261
- matchedTransactionId?: {
2375
+ defaultPaymentAccount?: {
2262
2376
  [key: string]: unknown;
2263
2377
  };
2264
2378
  /**
2265
- * Match timestamp (ISO 8601)
2379
+ * Default payee
2266
2380
  */
2267
- matchedAt?: {
2381
+ defaultPayee?: {
2268
2382
  [key: string]: unknown;
2269
2383
  };
2270
2384
  /**
2271
- * Match confidence score (0-1)
2385
+ * Whether rule is active
2272
2386
  */
2273
- matchConfidence?: {
2387
+ isActive: boolean;
2388
+ /**
2389
+ * Rule start date (YYYY-MM-DD)
2390
+ */
2391
+ startDate: string;
2392
+ /**
2393
+ * Rule end date (YYYY-MM-DD)
2394
+ */
2395
+ endDate?: {
2274
2396
  [key: string]: unknown;
2275
2397
  };
2276
2398
  /**
2277
- * Whether this expected transaction is overdue
2399
+ * Auto-create transaction on expected date
2278
2400
  */
2279
- isOverdue: boolean;
2401
+ autoCreate: boolean;
2280
2402
  /**
2281
- * Rule information
2403
+ * Last matched occurrence date (YYYY-MM-DD)
2282
2404
  */
2283
- rule: ExpectedTransactionRuleDto;
2405
+ lastOccurrence?: {
2406
+ [key: string]: unknown;
2407
+ };
2408
+ /**
2409
+ * Total matched transactions count
2410
+ */
2411
+ totalCount: number;
2284
2412
  /**
2285
2413
  * Created at timestamp
2286
2414
  */
@@ -2290,434 +2418,428 @@ type ExpectedTransactionResponseDto = {
2290
2418
  */
2291
2419
  updatedAt: string;
2292
2420
  };
2293
- type ExpectedTransactionListResponseDto = {
2294
- items: Array<ExpectedTransactionResponseDto>;
2295
- /**
2296
- * Total count
2297
- */
2298
- total: number;
2299
- };
2300
- type ConfirmMatchDto = {
2421
+ type CreateRuleFromTransactionDto = {
2301
2422
  /**
2302
- * Transaction ID to match with
2423
+ * Recurring frequency
2303
2424
  */
2304
- transactionId: string;
2305
- };
2306
- type EnterNowDto = {
2425
+ frequency: 'WEEKLY' | 'BIWEEKLY' | 'MONTHLY' | 'BIMONTHLY' | 'QUARTERLY' | 'YEARLY' | 'CUSTOM';
2307
2426
  /**
2308
- * Override expense account (uses rule default if not provided)
2427
+ * Optional name override (default: transaction payee)
2309
2428
  */
2310
- expenseAccount?: string;
2429
+ name?: string;
2311
2430
  /**
2312
- * Override payment account (uses rule default if not provided)
2431
+ * Optional icon emoji
2313
2432
  */
2314
- paymentAccount?: string;
2433
+ icon?: string;
2434
+ };
2435
+ type RecurringRuleWithStatsResponseDto = {
2315
2436
  /**
2316
- * Override amount (uses expected amount if not provided)
2437
+ * Rule ID
2317
2438
  */
2318
- amount?: number;
2439
+ id: string;
2319
2440
  /**
2320
- * Override payee (uses rule default if not provided)
2441
+ * User ID
2321
2442
  */
2322
- payee?: string;
2443
+ userId: string;
2323
2444
  /**
2324
- * Optional narration
2445
+ * Rule name
2325
2446
  */
2326
- narration?: string;
2327
- };
2328
- type ForecastItemDto = {
2447
+ name: string;
2329
2448
  /**
2330
- * Rule name
2449
+ * Icon emoji
2331
2450
  */
2332
- rule: string;
2451
+ icon?: {
2452
+ [key: string]: unknown;
2453
+ };
2333
2454
  /**
2334
- * Rule ID
2455
+ * Recurring frequency
2335
2456
  */
2336
- ruleId: string;
2457
+ frequency: string;
2337
2458
  /**
2338
2459
  * Expected amount
2339
2460
  */
2340
- amount: number;
2461
+ expectedAmount: number;
2341
2462
  /**
2342
- * Expected date (YYYY-MM-DD)
2463
+ * Expected day of month
2343
2464
  */
2344
- date: string;
2465
+ expectedDay?: {
2466
+ [key: string]: unknown;
2467
+ };
2345
2468
  /**
2346
- * Rule icon emoji
2469
+ * Custom interval in days
2347
2470
  */
2348
- icon: string | null;
2471
+ customIntervalDays?: {
2472
+ [key: string]: unknown;
2473
+ };
2349
2474
  /**
2350
2475
  * Currency code
2351
2476
  */
2352
2477
  currency: string;
2353
- };
2354
- type MonthlyForecastDto = {
2355
2478
  /**
2356
- * Month (YYYY-MM)
2479
+ * Payee matching pattern
2357
2480
  */
2358
- month: string;
2481
+ matchPayeePattern?: {
2482
+ [key: string]: unknown;
2483
+ };
2359
2484
  /**
2360
- * Total expected outflow for the month
2485
+ * Amount tolerance percentage
2361
2486
  */
2362
- expectedOutflow: number;
2487
+ matchAmountTolerance: number;
2363
2488
  /**
2364
- * Number of expected transactions
2489
+ * Default expense account
2365
2490
  */
2366
- itemCount: number;
2491
+ defaultExpenseAccount?: {
2492
+ [key: string]: unknown;
2493
+ };
2367
2494
  /**
2368
- * Breakdown by currency
2495
+ * Default payment account
2369
2496
  */
2370
- byCurrency: {
2497
+ defaultPaymentAccount?: {
2371
2498
  [key: string]: unknown;
2372
2499
  };
2373
2500
  /**
2374
- * Individual forecast items
2501
+ * Default payee
2375
2502
  */
2376
- items: Array<ForecastItemDto>;
2377
- };
2378
- type ForecastResponseDto = {
2503
+ defaultPayee?: {
2504
+ [key: string]: unknown;
2505
+ };
2379
2506
  /**
2380
- * Monthly forecast data
2507
+ * Whether rule is active
2381
2508
  */
2382
- forecast: Array<MonthlyForecastDto>;
2509
+ isActive: boolean;
2383
2510
  /**
2384
- * Total expected outflow across all months
2511
+ * Rule start date (YYYY-MM-DD)
2385
2512
  */
2386
- totalOutflow: number;
2513
+ startDate: string;
2387
2514
  /**
2388
- * Total by currency across all months
2515
+ * Rule end date (YYYY-MM-DD)
2389
2516
  */
2390
- totalByCurrency: {
2517
+ endDate?: {
2391
2518
  [key: string]: unknown;
2392
2519
  };
2393
2520
  /**
2394
- * Number of active recurring rules included
2521
+ * Auto-create transaction on expected date
2395
2522
  */
2396
- rulesCount: number;
2523
+ autoCreate: boolean;
2397
2524
  /**
2398
- * Forecast period start date
2525
+ * Last matched occurrence date (YYYY-MM-DD)
2399
2526
  */
2400
- periodStart: string;
2527
+ lastOccurrence?: {
2528
+ [key: string]: unknown;
2529
+ };
2401
2530
  /**
2402
- * Forecast period end date
2531
+ * Total matched transactions count
2403
2532
  */
2404
- periodEnd: string;
2405
- };
2406
- type CurrencyBalanceDto = {
2533
+ totalCount: number;
2407
2534
  /**
2408
- * ISO 4217 currency code
2535
+ * Created at timestamp
2409
2536
  */
2410
- currency: string;
2537
+ createdAt: string;
2411
2538
  /**
2412
- * Balance amount
2539
+ * Updated at timestamp
2413
2540
  */
2414
- balance: string;
2415
- };
2416
- type TimeSeriesPointDto = {
2541
+ updatedAt: string;
2417
2542
  /**
2418
- * Date in YYYY-MM-DD format
2543
+ * Number of pending expected transactions
2419
2544
  */
2420
- date: string;
2545
+ pendingCount: number;
2421
2546
  /**
2422
- * Value at this date (in base currency)
2547
+ * Number of overdue expected transactions
2423
2548
  */
2424
- value: string;
2549
+ overdueCount: number;
2425
2550
  /**
2426
- * Change from previous point
2551
+ * Next expected date (YYYY-MM-DD)
2427
2552
  */
2428
- change?: {
2553
+ nextExpectedDate?: {
2554
+ [key: string]: unknown;
2555
+ };
2556
+ /**
2557
+ * Total amount of all matched transactions
2558
+ */
2559
+ totalAmount: number;
2560
+ /**
2561
+ * Average amount per transaction
2562
+ */
2563
+ averageAmount: number;
2564
+ /**
2565
+ * Number of matched transactions
2566
+ */
2567
+ transactionCount: number;
2568
+ /**
2569
+ * First matched transaction date (YYYY-MM-DD)
2570
+ */
2571
+ firstDate?: {
2429
2572
  [key: string]: unknown;
2430
2573
  };
2431
2574
  /**
2432
- * Total assets at this date (in base currency)
2575
+ * Last matched transaction date (YYYY-MM-DD)
2433
2576
  */
2434
- assets?: string;
2577
+ lastDate?: {
2578
+ [key: string]: unknown;
2579
+ };
2435
2580
  /**
2436
- * Total liabilities at this date (in base currency)
2581
+ * Amount variance (standard deviation squared)
2437
2582
  */
2438
- liabilities?: string;
2583
+ variance: number;
2439
2584
  /**
2440
- * Multi-currency breakdown for this point
2585
+ * Number of upcoming expected transactions
2441
2586
  */
2442
- byCurrency?: Array<CurrencyBalanceDto>;
2587
+ upcomingCount: number;
2443
2588
  };
2444
- type TrendSummaryDto = {
2445
- /**
2446
- * Value at start of period
2447
- */
2448
- startValue: string;
2449
- /**
2450
- * Value at end of period
2451
- */
2452
- endValue: string;
2589
+ type UpdateRecurringRuleDto = {
2453
2590
  /**
2454
- * Total change over period
2591
+ * Rule name (unique per user)
2455
2592
  */
2456
- totalChange: string;
2593
+ name?: string;
2457
2594
  /**
2458
- * Total change percentage
2595
+ * Icon emoji
2459
2596
  */
2460
- totalChangePercentage: string;
2461
- };
2462
- type MultiCurrencyPointDto = {
2597
+ icon?: string;
2463
2598
  /**
2464
- * Date in YYYY-MM-DD format
2599
+ * Recurring frequency
2465
2600
  */
2466
- date: string;
2601
+ frequency?: 'WEEKLY' | 'BIWEEKLY' | 'MONTHLY' | 'BIMONTHLY' | 'QUARTERLY' | 'YEARLY' | 'CUSTOM';
2467
2602
  /**
2468
- * Balances by currency
2603
+ * Expected amount (positive number)
2469
2604
  */
2470
- byCurrency: Array<CurrencyBalanceDto>;
2471
- };
2472
- type PortfolioTrendsResponseDto = {
2605
+ expectedAmount?: number;
2473
2606
  /**
2474
- * Time series data points
2607
+ * Expected day of month (1-31)
2475
2608
  */
2476
- series: Array<TimeSeriesPointDto>;
2609
+ expectedDay?: number;
2477
2610
  /**
2478
- * Period summary
2611
+ * Currency code
2479
2612
  */
2480
- summary: TrendSummaryDto;
2613
+ currency?: string;
2481
2614
  /**
2482
- * Period requested
2615
+ * Payee matching pattern (supports wildcards)
2483
2616
  */
2484
- period: string;
2617
+ matchPayeePattern?: string;
2485
2618
  /**
2486
- * Data granularity
2619
+ * Amount tolerance percentage (0-1)
2487
2620
  */
2488
- granularity: string;
2621
+ matchAmountTolerance?: number;
2489
2622
  /**
2490
- * Base currency for converted values
2623
+ * Default expense account for auto-create
2491
2624
  */
2492
- currency: string;
2625
+ defaultExpenseAccount?: string;
2493
2626
  /**
2494
- * Multi-currency time series (each point has currency breakdown)
2627
+ * Default payment account for auto-create
2495
2628
  */
2496
- byCurrency?: Array<MultiCurrencyPointDto>;
2629
+ defaultPaymentAccount?: string;
2497
2630
  /**
2498
- * Exchange rate warnings
2631
+ * Default payee for auto-create
2499
2632
  */
2500
- warnings?: Array<ExchangeRateWarningDto>;
2501
- };
2502
- type CashFlowPointDto = {
2633
+ defaultPayee?: string;
2503
2634
  /**
2504
- * Month key (YYYY-MM)
2635
+ * Auto-create transaction when expected date arrives
2505
2636
  */
2506
- month: string;
2637
+ autoCreate?: boolean;
2507
2638
  /**
2508
- * Income in base currency (absolute, converted)
2639
+ * Rule end date (ISO format)
2509
2640
  */
2510
- income: string;
2641
+ endDate?: string;
2511
2642
  /**
2512
- * Expense in base currency (absolute, converted)
2643
+ * Custom interval in days
2513
2644
  */
2514
- expense: string;
2645
+ customIntervalDays?: number;
2515
2646
  /**
2516
- * netSavings = income − expense (savings positive)
2647
+ * Rule active status
2517
2648
  */
2518
- netSavings: string;
2649
+ isActive?: boolean;
2519
2650
  };
2520
- type CashFlowTrendSummaryDto = {
2651
+ type ExpectedTransactionRuleDto = {
2521
2652
  /**
2522
- * Total income across the period
2653
+ * Rule name
2523
2654
  */
2524
- totalIncome: string;
2655
+ name: string;
2525
2656
  /**
2526
- * Total expense across the period
2657
+ * Rule icon
2527
2658
  */
2528
- totalExpense: string;
2659
+ icon?: {
2660
+ [key: string]: unknown;
2661
+ };
2529
2662
  /**
2530
- * income − expense across the period
2663
+ * Rule frequency
2531
2664
  */
2532
- totalNetSavings: string;
2665
+ frequency: string;
2533
2666
  /**
2534
- * totalNetSavings divided by the window length (N months, incl. zero-filled)
2667
+ * Currency code
2535
2668
  */
2536
- averageMonthlyNetSavings: string;
2669
+ currency: string;
2537
2670
  };
2538
- type CashFlowTrendsResponseDto = {
2671
+ type ExpectedTransactionResponseDto = {
2539
2672
  /**
2540
- * Monthly cash-flow series (fixed N-month window, zero-filled)
2673
+ * Expected transaction ID
2541
2674
  */
2542
- series: Array<CashFlowPointDto>;
2675
+ id: string;
2543
2676
  /**
2544
- * Period totals
2677
+ * User ID
2545
2678
  */
2546
- summary: CashFlowTrendSummaryDto;
2679
+ userId: string;
2547
2680
  /**
2548
- * Period requested
2681
+ * Associated rule ID
2549
2682
  */
2550
- period: string;
2683
+ ruleId: string;
2551
2684
  /**
2552
- * Data granularity (v1 returns month buckets)
2685
+ * Expected date (YYYY-MM-DD)
2553
2686
  */
2554
- granularity: string;
2687
+ expectedDate: string;
2555
2688
  /**
2556
- * Base currency for converted values
2689
+ * Expected amount
2557
2690
  */
2558
- currency: string;
2691
+ expectedAmount: number;
2559
2692
  /**
2560
- * Exchange rate warnings (e.g. missing rate for a currency)
2693
+ * Status (PENDING, COMPLETED, SKIPPED)
2561
2694
  */
2562
- warnings?: Array<ExchangeRateWarningDto>;
2563
- };
2564
- type GenerateSnapshotBody = unknown;
2565
- type GenerateSnapshotResponse = unknown;
2566
- type BackfillSnapshotsBody = unknown;
2567
- type BackfillSnapshotsResponse = unknown;
2568
- type DeleteOwnUserDto = {
2695
+ status: string;
2569
2696
  /**
2570
- * Access token for user verification
2697
+ * Matched transaction ID
2571
2698
  */
2572
- accessToken: string;
2573
- };
2574
- type UserSettingsResponseDto = {
2699
+ matchedTransactionId?: {
2700
+ [key: string]: unknown;
2701
+ };
2575
2702
  /**
2576
- * Base currency (ISO 4217) for net-worth/report aggregation. Independent of region (ADR-0006).
2703
+ * Match timestamp (ISO 8601)
2577
2704
  */
2578
- baseCurrency: string | null;
2579
- };
2580
- type UserResponseDto = {
2705
+ matchedAt?: {
2706
+ [key: string]: unknown;
2707
+ };
2581
2708
  /**
2582
- * User ID
2709
+ * Match confidence score (0-1)
2583
2710
  */
2584
- id: string;
2711
+ matchConfidence?: {
2712
+ [key: string]: unknown;
2713
+ };
2585
2714
  /**
2586
- * Assigned user role
2715
+ * Whether this expected transaction is overdue
2587
2716
  */
2588
- role: string;
2717
+ isOverdue: boolean;
2589
2718
  /**
2590
- * Permission strings
2719
+ * Rule information
2591
2720
  */
2592
- permissions: Array<string>;
2721
+ rule: ExpectedTransactionRuleDto;
2593
2722
  /**
2594
- * User settings
2723
+ * Created at timestamp
2595
2724
  */
2596
- settings: UserSettingsResponseDto;
2597
- };
2598
- type SignupDto = {
2725
+ createdAt: string;
2599
2726
  /**
2600
- * Cloudflare Turnstile verification token (optional when Turnstile disabled)
2727
+ * Updated at timestamp
2601
2728
  */
2602
- turnstileToken?: string;
2729
+ updatedAt: string;
2603
2730
  };
2604
- type SignupResponseDto = {
2605
- /**
2606
- * JWT auth token
2607
- */
2608
- authToken: string;
2731
+ type ExpectedTransactionListResponseDto = {
2732
+ items: Array<ExpectedTransactionResponseDto>;
2609
2733
  /**
2610
- * Auto-generated access token
2734
+ * Total count
2611
2735
  */
2612
- accessToken: string;
2736
+ total: number;
2737
+ };
2738
+ type ConfirmMatchDto = {
2613
2739
  /**
2614
- * Assigned user role
2740
+ * Transaction ID to match with
2615
2741
  */
2616
- role: 'USER' | 'ADMIN' | 'DEMO' | 'INACTIVE' | 'PAID' | 'OPS';
2742
+ transactionId: string;
2617
2743
  };
2618
- /**
2619
- * Assigned user role
2620
- */
2621
- type role = 'USER' | 'ADMIN' | 'DEMO' | 'INACTIVE' | 'PAID' | 'OPS';
2622
- type UpdateUserSettingDto = {
2744
+ type EnterNowDto = {
2623
2745
  /**
2624
- * Security ID
2746
+ * Override expense account (uses rule default if not provided)
2625
2747
  */
2626
- secId?: number;
2748
+ expenseAccount?: string;
2627
2749
  /**
2628
- * Annual interest rate
2750
+ * Override payment account (uses rule default if not provided)
2629
2751
  */
2630
- annualInterestRate?: number;
2752
+ paymentAccount?: string;
2631
2753
  /**
2632
- * Currency code
2754
+ * Override amount (uses expected amount if not provided)
2633
2755
  */
2634
- currency?: string;
2756
+ amount?: number;
2635
2757
  /**
2636
- * Base currency code
2758
+ * Override payee (uses rule default if not provided)
2637
2759
  */
2638
- baseCurrency?: string;
2760
+ payee?: string;
2639
2761
  /**
2640
- * Benchmark symbol
2762
+ * Optional narration
2641
2763
  */
2642
- benchmark?: string;
2764
+ narration?: string;
2765
+ };
2766
+ type ForecastItemDto = {
2643
2767
  /**
2644
- * Color scheme
2768
+ * Rule name
2645
2769
  */
2646
- colorScheme?: 'DARK' | 'LIGHT';
2770
+ rule: string;
2647
2771
  /**
2648
- * Date range filter
2772
+ * Rule ID
2649
2773
  */
2650
- dateRange?: string;
2774
+ ruleId: string;
2651
2775
  /**
2652
- * Emergency fund amount
2776
+ * Expected amount
2653
2777
  */
2654
- emergencyFund?: number;
2778
+ amount: number;
2655
2779
  /**
2656
- * Account filter IDs
2780
+ * Expected date (YYYY-MM-DD)
2657
2781
  */
2658
- 'filters.accounts'?: Array<string>;
2782
+ date: string;
2659
2783
  /**
2660
- * Asset class filters
2784
+ * Rule icon emoji
2661
2785
  */
2662
- 'filters.assetClasses'?: Array<string>;
2786
+ icon: string | null;
2663
2787
  /**
2664
- * Data source filter
2788
+ * Currency code
2665
2789
  */
2666
- 'filters.dataSource'?: string;
2790
+ currency: string;
2791
+ };
2792
+ type MonthlyForecastDto = {
2667
2793
  /**
2668
- * Symbol filter
2794
+ * Month (YYYY-MM)
2669
2795
  */
2670
- 'filters.symbol'?: string;
2796
+ month: string;
2671
2797
  /**
2672
- * Tag filters
2798
+ * Total expected outflow for the month
2673
2799
  */
2674
- 'filters.tags'?: Array<string>;
2800
+ expectedOutflow: number;
2675
2801
  /**
2676
- * Enable experimental features
2802
+ * Number of expected transactions
2677
2803
  */
2678
- isExperimentalFeatures?: boolean;
2804
+ itemCount: number;
2679
2805
  /**
2680
- * Enable restricted view mode
2806
+ * Breakdown by currency
2681
2807
  */
2682
- isRestrictedView?: boolean;
2808
+ byCurrency: {
2809
+ [key: string]: unknown;
2810
+ };
2683
2811
  /**
2684
- * Language code
2812
+ * Individual forecast items
2685
2813
  */
2686
- language?: string;
2814
+ items: Array<ForecastItemDto>;
2815
+ };
2816
+ type ForecastResponseDto = {
2687
2817
  /**
2688
- * Locale code
2818
+ * Monthly forecast data
2689
2819
  */
2690
- locale?: string;
2820
+ forecast: Array<MonthlyForecastDto>;
2691
2821
  /**
2692
- * Projected total amount
2822
+ * Total expected outflow across all months
2693
2823
  */
2694
- projectedTotalAmount?: number;
2824
+ totalOutflow: number;
2695
2825
  /**
2696
- * Retirement date in ISO 8601 format
2826
+ * Total by currency across all months
2697
2827
  */
2698
- retirementDate?: string;
2828
+ totalByCurrency: {
2829
+ [key: string]: unknown;
2830
+ };
2699
2831
  /**
2700
- * Savings rate percentage
2832
+ * Number of active recurring rules included
2701
2833
  */
2702
- savingsRate?: number;
2834
+ rulesCount: number;
2703
2835
  /**
2704
- * View mode
2836
+ * Forecast period start date
2705
2837
  */
2706
- viewMode?: 'DEFAULT' | 'ZEN';
2707
- };
2708
- /**
2709
- * Color scheme
2710
- */
2711
- type colorScheme = 'DARK' | 'LIGHT';
2712
- /**
2713
- * View mode
2714
- */
2715
- type viewMode = 'DEFAULT' | 'ZEN';
2716
- type UpdatePropertyDto = {
2838
+ periodStart: string;
2717
2839
  /**
2718
- * Property value
2840
+ * Forecast period end date
2719
2841
  */
2720
- value: string;
2842
+ periodEnd: string;
2721
2843
  };
2722
2844
  type CreateTransactionRuleDto = {
2723
2845
  name: string;
@@ -3021,14 +3143,14 @@ type UpdateTransactionRuleDto = {
3021
3143
  */
3022
3144
  amountMax?: number;
3023
3145
  priority?: number;
3024
- /**
3025
- * Enable or disable the rule
3026
- */
3027
- enabled?: boolean;
3028
3146
  additionalTags?: Array<unknown[]>;
3029
3147
  additionalMetadata?: {
3030
3148
  [key: string]: unknown;
3031
3149
  };
3150
+ /**
3151
+ * Enable or disable the rule
3152
+ */
3153
+ enabled?: boolean;
3032
3154
  };
3033
3155
  type TestRuleDto = {
3034
3156
  narration: string;
@@ -3772,10 +3894,26 @@ type ProcessNlpDto = {
3772
3894
  */
3773
3895
  selectedRuleId?: string;
3774
3896
  /**
3775
- * 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.
3897
+ * 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.
3776
3898
  */
3777
3899
  selectedAccount?: string;
3900
+ /**
3901
+ * 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.
3902
+ */
3903
+ viewpointAccount?: string;
3904
+ /**
3905
+ * 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.
3906
+ */
3907
+ viewpointCategory?: string;
3908
+ /**
3909
+ * 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.
3910
+ */
3911
+ viewpointFlow?: 'income' | 'expense';
3778
3912
  };
3913
+ /**
3914
+ * 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.
3915
+ */
3916
+ type viewpointFlow = 'income' | 'expense';
3779
3917
  type NlpTransactionInfoDto = {
3780
3918
  /**
3781
3919
  * Transaction ID
@@ -3994,6 +4132,16 @@ type NlpRuleConfirmationDataDto = {
3994
4132
  */
3995
4133
  reasons: Array<string>;
3996
4134
  };
4135
+ type NlpAccountCandidateDto = {
4136
+ /**
4137
+ * Canonical beancount account path (echo back on selection)
4138
+ */
4139
+ path: string;
4140
+ /**
4141
+ * Localized display name (ADR-0114 read-time projection, user locale)
4142
+ */
4143
+ name: string;
4144
+ };
3997
4145
  type NlpAccountConfirmationDataDto = {
3998
4146
  /**
3999
4147
  * The invalid account name
@@ -4004,9 +4152,9 @@ type NlpAccountConfirmationDataDto = {
4004
4152
  */
4005
4153
  suggestedAccount?: string;
4006
4154
  /**
4007
- * Similar accounts for user selection
4155
+ * Similar accounts for user selection (path + localized name, #680)
4008
4156
  */
4009
- similarAccounts: Array<string>;
4157
+ similarAccounts: Array<NlpAccountCandidateDto>;
4010
4158
  /**
4011
4159
  * Error message explaining the issue
4012
4160
  */
@@ -4172,7 +4320,7 @@ type NlpResponseDto = {
4172
4320
  /**
4173
4321
  * Asset sub-type (only present when intent is "asset"). Determines which asset-related form to render.
4174
4322
  */
4175
- assetSubType?: 'transfer' | 'banking' | 'investment';
4323
+ assetSubType?: 'transfer' | 'banking' | 'investment' | 'lend' | 'lend_collect';
4176
4324
  /**
4177
4325
  * Liability sub-type (only present when intent is "liability"). borrow: borrowing money (Liabilities → Assets), repay: repaying debt (Assets → Liabilities).
4178
4326
  */
@@ -4276,7 +4424,7 @@ type intent = 'expense' | 'asset' | 'income' | 'liability' | 'equity';
4276
4424
  /**
4277
4425
  * Asset sub-type (only present when intent is "asset"). Determines which asset-related form to render.
4278
4426
  */
4279
- type assetSubType = 'transfer' | 'banking' | 'investment';
4427
+ type assetSubType = 'transfer' | 'banking' | 'investment' | 'lend' | 'lend_collect';
4280
4428
  /**
4281
4429
  * Liability sub-type (only present when intent is "liability"). borrow: borrowing money (Liabilities → Assets), repay: repaying debt (Assets → Liabilities).
4282
4430
  */
@@ -4330,7 +4478,7 @@ type PlatformListItemDto = {
4330
4478
  /**
4331
4479
  * Platform type
4332
4480
  */
4333
- type type3 = 'BANK' | 'BROKERAGE' | 'CRYPTO_EXCHANGE' | 'PAYMENT' | 'INVESTMENT' | 'INSURANCE' | 'OTHER';
4481
+ type type4 = 'BANK' | 'BROKERAGE' | 'CRYPTO_EXCHANGE' | 'PAYMENT' | 'INVESTMENT' | 'INSURANCE' | 'OTHER';
4334
4482
  type PlatformMatchResultDto = {
4335
4483
  /**
4336
4484
  * Global platform ID
@@ -4395,6 +4543,46 @@ type PlatformMatchResponseDto = {
4395
4543
  * Overall match quality — top row's tier, or 'none' when no hits
4396
4544
  */
4397
4545
  type matchType2 = 'none' | 'exact' | 'prefix' | 'substring';
4546
+ type PlatformStandardsPlatformDto = {
4547
+ /**
4548
+ * Global platform ID
4549
+ */
4550
+ id: string;
4551
+ /**
4552
+ * Platform name (e.g., "ICBC")
4553
+ */
4554
+ name: string;
4555
+ /**
4556
+ * Canonical identifier in ACCOUNT_RE format (e.g., "icbc")
4557
+ */
4558
+ canonical: string;
4559
+ /**
4560
+ * Suggested path segment — canonical PascalCased per hyphen-part, hyphens preserved (e.g. "Apple-Pay")
4561
+ */
4562
+ suggestedSegment: string;
4563
+ /**
4564
+ * Platform type
4565
+ */
4566
+ type: 'BANK' | 'BROKERAGE' | 'CRYPTO_EXCHANGE' | 'PAYMENT' | 'INVESTMENT' | 'INSURANCE' | 'OTHER';
4567
+ /**
4568
+ * Region-aware category (institution vocab, e.g. DigitalWallet/Bank) resolved against the final region. null = no region-aware suggestion; fall back to type.
4569
+ */
4570
+ category: string | null;
4571
+ };
4572
+ type PlatformStandardsResponseDto = {
4573
+ /**
4574
+ * The selected platform (institution lock source)
4575
+ */
4576
+ platform: PlatformStandardsPlatformDto;
4577
+ /**
4578
+ * 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.
4579
+ */
4580
+ region: string;
4581
+ /**
4582
+ * Candidate account-standard templates of the resolved region (groupable by productCategory client-side)
4583
+ */
4584
+ templates: Array<AccountStandardResponseDto>;
4585
+ };
4398
4586
  type CreatePlatformDto = {
4399
4587
  /**
4400
4588
  * Platform name
@@ -4571,11 +4759,11 @@ type PlatformGroupDto = {
4571
4759
  */
4572
4760
  platformName: string;
4573
4761
  /**
4574
- * Accounts within this platform
4762
+ * Accounts within this platform (Assets and Liabilities rows, #696)
4575
4763
  */
4576
4764
  accounts: Array<AccountItemDto>;
4577
4765
  /**
4578
- * FX-converted total balance in base currency
4766
+ * FX-converted total balance in base currency (nets Assets + Liabilities rows; can be negative)
4579
4767
  */
4580
4768
  totalBalance: string;
4581
4769
  /**
@@ -4587,7 +4775,7 @@ type PlatformGroupDto = {
4587
4775
  */
4588
4776
  convertedBalance?: string;
4589
4777
  /**
4590
- * Share of the grand converted total (0-100); 0 when grand total is 0
4778
+ * Share of the converted asset-side grand total (0-100); liability balances are excluded from the basis; 0 when grand total is 0 (#696)
4591
4779
  */
4592
4780
  sharePct: number;
4593
4781
  };
@@ -4611,7 +4799,7 @@ type AccountExchangeRateWarningDto = {
4611
4799
  };
4612
4800
  type AccountsSummaryDto = {
4613
4801
  /**
4614
- * Total number of accounts
4802
+ * Total number of accounts (balance sheet: Assets + Liabilities, #696)
4615
4803
  */
4616
4804
  totalAccounts: number;
4617
4805
  /**
@@ -5077,7 +5265,7 @@ type HoldingPnlWarningDto = {
5077
5265
  /**
5078
5266
  * Warning type
5079
5267
  */
5080
- type type4 = 'MISSING_COST_FX_RATE' | 'MISSING_MARKET_FX_RATE' | 'MISSING_SALE_PRICE' | 'MISSING_REALIZED_FX_RATE' | 'OVERSOLD_LOTS' | 'NO_PRICE' | 'MIXED_COST_CURRENCY';
5268
+ type type5 = 'MISSING_COST_FX_RATE' | 'MISSING_MARKET_FX_RATE' | 'MISSING_SALE_PRICE' | 'MISSING_REALIZED_FX_RATE' | 'OVERSOLD_LOTS' | 'NO_PRICE' | 'MIXED_COST_CURRENCY';
5081
5269
  type HoldingPnlResponseDto = {
5082
5270
  asOfDate: string;
5083
5271
  baseCurrency: string;
@@ -5104,6 +5292,81 @@ type AnonymousLoginResponseDto = {
5104
5292
  */
5105
5293
  authToken: string;
5106
5294
  };
5295
+ type ParserContributionMetaDto = {
5296
+ /**
5297
+ * Institution slug (lowercase kebab-case)
5298
+ */
5299
+ institution: string;
5300
+ region: 'cn' | 'us' | 'de' | 'fr' | 'gb' | 'hk' | 'jp' | 'sg' | 'au' | 'ca' | 'other';
5301
+ accountType: 'checking' | 'savings' | 'credit' | 'debit' | 'investment';
5302
+ format: 'csv' | 'xlsx' | 'pdf' | 'ofx' | 'qif';
5303
+ institutionDisplayName?: string;
5304
+ encoding?: string;
5305
+ /**
5306
+ * CSV delimiter character: ",", ";", "\t" or "|"
5307
+ */
5308
+ delimiter?: string;
5309
+ /**
5310
+ * Header row count; the client omits the field when it is 1
5311
+ */
5312
+ headerRows?: number;
5313
+ notes?: string;
5314
+ };
5315
+ type region = 'cn' | 'us' | 'de' | 'fr' | 'gb' | 'hk' | 'jp' | 'sg' | 'au' | 'ca' | 'other';
5316
+ type accountType = 'checking' | 'savings' | 'credit' | 'debit' | 'investment';
5317
+ type format = 'csv' | 'xlsx' | 'pdf' | 'ofx' | 'qif';
5318
+ type ParserContributionSamplesDto = {
5319
+ /**
5320
+ * Client-sanitized sample rows (key = column name, value = cell)
5321
+ */
5322
+ rows: Array<{
5323
+ [key: string]: unknown;
5324
+ }>;
5325
+ rawHeaders?: Array<string>;
5326
+ };
5327
+ type FieldHintDto = {
5328
+ columnName: string;
5329
+ /**
5330
+ * Date format, e.g. yyyy-MM-dd HH:mm
5331
+ */
5332
+ format?: string;
5333
+ signConvention?: 'negative-expense' | 'positive-expense' | 'separate-columns';
5334
+ creditColumn?: string;
5335
+ debitColumn?: string;
5336
+ };
5337
+ type signConvention = 'negative-expense' | 'positive-expense' | 'separate-columns';
5338
+ type ParserContributionFieldHintsDto = {
5339
+ date: FieldHintDto;
5340
+ amount: FieldHintDto;
5341
+ description?: FieldHintDto;
5342
+ balance?: FieldHintDto;
5343
+ payee?: FieldHintDto;
5344
+ reference?: FieldHintDto;
5345
+ category?: FieldHintDto;
5346
+ };
5347
+ type ExpectedTransactionDto = {
5348
+ date: string;
5349
+ amount: number;
5350
+ description: string;
5351
+ payee?: string;
5352
+ category?: string;
5353
+ };
5354
+ type ParserContributionExamplesDto = {
5355
+ expectedTransactions: Array<ExpectedTransactionDto>;
5356
+ };
5357
+ type ParserContributionRequestDto = {
5358
+ meta: ParserContributionMetaDto;
5359
+ samples: ParserContributionSamplesDto;
5360
+ fieldHints: ParserContributionFieldHintsDto;
5361
+ /**
5362
+ * Omitted entirely by the client when empty
5363
+ */
5364
+ examples?: ParserContributionExamplesDto;
5365
+ };
5366
+ type ParserContributionRelayResponseDto = {
5367
+ issueUrl: string;
5368
+ issueNumber: number;
5369
+ };
5107
5370
  type SymbolSearchResultDto = {
5108
5371
  symbol: string;
5109
5372
  name?: {
@@ -5345,7 +5608,7 @@ type AccountStandardsControllerGetTemplatesData = {
5345
5608
  */
5346
5609
  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';
5347
5610
  /**
5348
- * Search term for path or description
5611
+ * Search term for path, description, aliases, or localized display name
5349
5612
  */
5350
5613
  search?: string;
5351
5614
  /**
@@ -5389,7 +5652,7 @@ type TransactionControllerListData = {
5389
5652
  */
5390
5653
  accountId?: string;
5391
5654
  /**
5392
- * Filter by ADR-0075 functional category (Group segment); matches any posting to an Expenses/Income account whose derived Group segment equals this value
5655
+ * 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).
5393
5656
  */
5394
5657
  category?: string;
5395
5658
  /**
@@ -5400,6 +5663,10 @@ type TransactionControllerListData = {
5400
5663
  * Filter by end date (inclusive), format: YYYY-MM-DD
5401
5664
  */
5402
5665
  dateTo?: string;
5666
+ /**
5667
+ * 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.
5668
+ */
5669
+ flow?: 'income' | 'expense';
5403
5670
  /**
5404
5671
  * Number of items per page (1-100, default: 20)
5405
5672
  */
@@ -5417,9 +5684,9 @@ type TransactionControllerListData = {
5417
5684
  */
5418
5685
  search?: string;
5419
5686
  /**
5420
- * Filter by transaction status
5687
+ * 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).
5421
5688
  */
5422
- status?: 'ACTIVE' | 'VOIDED' | 'SUPERSEDED';
5689
+ status?: 'ACTIVE' | 'VOIDED' | 'SUPERSEDED' | 'ALL';
5423
5690
  };
5424
5691
  type TransactionControllerListResponse = TransactionListResponseDto;
5425
5692
  type TransactionControllerCreateBatchData = {
@@ -5736,7 +6003,7 @@ type PayeeProfileAdminControllerUnverifyData = {
5736
6003
  */
5737
6004
  id: string;
5738
6005
  };
5739
- type PayeeProfileAdminControllerUnverifyResponse = PayeeProfileResponseDto;
6006
+ type PayeeProfileAdminControllerUnverifyResponse = void;
5740
6007
  type CommodityControllerCreateData = {
5741
6008
  /**
5742
6009
  * Region code for tenant context
@@ -5812,6 +6079,55 @@ type CommodityControllerBulkCreateData = {
5812
6079
  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';
5813
6080
  };
5814
6081
  type CommodityControllerBulkCreateResponse = Array<CommodityResponseDto>;
6082
+ type ReportingControllerGetPortfolioTrendsData = {
6083
+ /**
6084
+ * Data granularity
6085
+ */
6086
+ granularity?: 'day' | 'week' | 'month';
6087
+ /**
6088
+ * Time period
6089
+ */
6090
+ period?: '1m' | '3m' | '6m' | '1y';
6091
+ /**
6092
+ * Region code for tenant context
6093
+ */
6094
+ 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';
6095
+ };
6096
+ type ReportingControllerGetPortfolioTrendsResponse = PortfolioTrendsResponseDto;
6097
+ type ReportingControllerGetCashFlowTrendsData = {
6098
+ /**
6099
+ * Data granularity (accepted for API symmetry; v1 returns month buckets)
6100
+ */
6101
+ granularity?: 'day' | 'week' | 'month';
6102
+ /**
6103
+ * Time period
6104
+ */
6105
+ period?: '1m' | '3m' | '6m' | '1y';
6106
+ /**
6107
+ * Region code for tenant context
6108
+ */
6109
+ 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';
6110
+ };
6111
+ type ReportingControllerGetCashFlowTrendsResponse = CashFlowTrendsResponseDto;
6112
+ type ReportingControllerGenerateSnapshotData = {
6113
+ /**
6114
+ * Region code for tenant context
6115
+ */
6116
+ 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';
6117
+ /**
6118
+ * Optional date (defaults to today)
6119
+ */
6120
+ requestBody: GenerateSnapshotBody;
6121
+ };
6122
+ type ReportingControllerGenerateSnapshotResponse = GenerateSnapshotResponse;
6123
+ type ReportingControllerBackfillSnapshotsData = {
6124
+ /**
6125
+ * Region code for tenant context
6126
+ */
6127
+ 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';
6128
+ requestBody: BackfillSnapshotsBody;
6129
+ };
6130
+ type ReportingControllerBackfillSnapshotsResponse = BackfillSnapshotsResponse;
5815
6131
  type PriceControllerCreateData = {
5816
6132
  /**
5817
6133
  * Region code for tenant context
@@ -5886,17 +6202,82 @@ type PriceControllerDeleteData = {
5886
6202
  /**
5887
6203
  * Region code for tenant context
5888
6204
  */
5889
- 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';
6205
+ 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';
6206
+ };
6207
+ type PriceControllerDeleteResponse = void;
6208
+ type PriceControllerBulkCreateData = {
6209
+ /**
6210
+ * Region code for tenant context
6211
+ */
6212
+ 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';
6213
+ requestBody: Array<string>;
6214
+ };
6215
+ type PriceControllerBulkCreateResponse = Array<PriceResponseDto>;
6216
+ type UserControllerDeleteOwnUserData = {
6217
+ requestBody: DeleteOwnUserDto;
6218
+ };
6219
+ type UserControllerDeleteOwnUserResponse = void;
6220
+ type UserControllerGetUserData = {
6221
+ acceptLanguage: string;
6222
+ };
6223
+ type UserControllerGetUserResponse = UserResponseDto;
6224
+ type UserControllerSignupUserData = {
6225
+ requestBody: SignupDto;
6226
+ };
6227
+ type UserControllerSignupUserResponse = SignupResponseDto;
6228
+ type UserControllerDeleteUserData = {
6229
+ /**
6230
+ * User ID to delete
6231
+ */
6232
+ id: string;
6233
+ };
6234
+ type UserControllerDeleteUserResponse = void;
6235
+ type UserControllerGetUserInfoData = {
6236
+ /**
6237
+ * User ID
6238
+ */
6239
+ id: string;
6240
+ };
6241
+ type UserControllerGetUserInfoResponse = unknown;
6242
+ type UserControllerUpdateUserSettingData = {
6243
+ requestBody: UpdateUserSettingDto;
6244
+ };
6245
+ type UserControllerUpdateUserSettingResponse = unknown;
6246
+ type UserControllerGetAllUserSettingsByPageData = {
6247
+ /**
6248
+ * Page number
6249
+ */
6250
+ pageNo: number;
6251
+ /**
6252
+ * Page size
6253
+ */
6254
+ pageSize: number;
6255
+ };
6256
+ type UserControllerGetAllUserSettingsByPageResponse = unknown;
6257
+ type UserControllerGetAssetLiabilitySummaryResponse = unknown;
6258
+ type PropertyControllerGetAllResponse = unknown;
6259
+ type PropertyControllerGetByKeyData = {
6260
+ /**
6261
+ * Property key
6262
+ */
6263
+ key: string;
6264
+ };
6265
+ type PropertyControllerGetByKeyResponse = unknown;
6266
+ type PropertyControllerUpdateData = {
6267
+ /**
6268
+ * Property key
6269
+ */
6270
+ key: string;
6271
+ requestBody: UpdatePropertyDto;
5890
6272
  };
5891
- type PriceControllerDeleteResponse = void;
5892
- type PriceControllerBulkCreateData = {
6273
+ type PropertyControllerUpdateResponse = unknown;
6274
+ type PropertyControllerDeleteData = {
5893
6275
  /**
5894
- * Region code for tenant context
6276
+ * Property key
5895
6277
  */
5896
- 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';
5897
- requestBody: Array<string>;
6278
+ key: string;
5898
6279
  };
5899
- type PriceControllerBulkCreateResponse = Array<PriceResponseDto>;
6280
+ type PropertyControllerDeleteResponse = void;
5900
6281
  type RecurringRuleControllerCreateData = {
5901
6282
  /**
5902
6283
  * Region code for tenant context
@@ -6043,7 +6424,7 @@ type ExpectedTransactionControllerUndoSkipData = {
6043
6424
  */
6044
6425
  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';
6045
6426
  };
6046
- type ExpectedTransactionControllerUndoSkipResponse = ExpectedTransactionResponseDto;
6427
+ type ExpectedTransactionControllerUndoSkipResponse = void;
6047
6428
  type ExpectedTransactionControllerConfirmMatchData = {
6048
6429
  /**
6049
6430
  * Expected transaction ID
@@ -6066,7 +6447,7 @@ type ExpectedTransactionControllerUnmatchData = {
6066
6447
  */
6067
6448
  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';
6068
6449
  };
6069
- type ExpectedTransactionControllerUnmatchResponse = unknown;
6450
+ type ExpectedTransactionControllerUnmatchResponse = void;
6070
6451
  type ExpectedTransactionControllerEnterNowData = {
6071
6452
  /**
6072
6453
  * Expected transaction ID
@@ -6090,120 +6471,6 @@ type ForecastControllerGetForecastData = {
6090
6471
  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';
6091
6472
  };
6092
6473
  type ForecastControllerGetForecastResponse = ForecastResponseDto;
6093
- type ReportingControllerGetPortfolioTrendsData = {
6094
- /**
6095
- * Data granularity
6096
- */
6097
- granularity?: 'day' | 'week' | 'month';
6098
- /**
6099
- * Time period
6100
- */
6101
- period?: '1m' | '3m' | '6m' | '1y';
6102
- /**
6103
- * Region code for tenant context
6104
- */
6105
- 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';
6106
- };
6107
- type ReportingControllerGetPortfolioTrendsResponse = PortfolioTrendsResponseDto;
6108
- type ReportingControllerGetCashFlowTrendsData = {
6109
- /**
6110
- * Data granularity (accepted for API symmetry; v1 returns month buckets)
6111
- */
6112
- granularity?: 'day' | 'week' | 'month';
6113
- /**
6114
- * Time period
6115
- */
6116
- period?: '1m' | '3m' | '6m' | '1y';
6117
- /**
6118
- * Region code for tenant context
6119
- */
6120
- 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';
6121
- };
6122
- type ReportingControllerGetCashFlowTrendsResponse = CashFlowTrendsResponseDto;
6123
- type ReportingControllerGenerateSnapshotData = {
6124
- /**
6125
- * Region code for tenant context
6126
- */
6127
- 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';
6128
- /**
6129
- * Optional date (defaults to today)
6130
- */
6131
- requestBody: GenerateSnapshotBody;
6132
- };
6133
- type ReportingControllerGenerateSnapshotResponse = GenerateSnapshotResponse;
6134
- type ReportingControllerBackfillSnapshotsData = {
6135
- /**
6136
- * Region code for tenant context
6137
- */
6138
- 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';
6139
- requestBody: BackfillSnapshotsBody;
6140
- };
6141
- type ReportingControllerBackfillSnapshotsResponse = BackfillSnapshotsResponse;
6142
- type UserControllerDeleteOwnUserData = {
6143
- requestBody: DeleteOwnUserDto;
6144
- };
6145
- type UserControllerDeleteOwnUserResponse = void;
6146
- type UserControllerGetUserData = {
6147
- acceptLanguage: string;
6148
- };
6149
- type UserControllerGetUserResponse = UserResponseDto;
6150
- type UserControllerSignupUserData = {
6151
- requestBody: SignupDto;
6152
- };
6153
- type UserControllerSignupUserResponse = SignupResponseDto;
6154
- type UserControllerDeleteUserData = {
6155
- /**
6156
- * User ID to delete
6157
- */
6158
- id: string;
6159
- };
6160
- type UserControllerDeleteUserResponse = void;
6161
- type UserControllerGetUserInfoData = {
6162
- /**
6163
- * User ID
6164
- */
6165
- id: string;
6166
- };
6167
- type UserControllerGetUserInfoResponse = unknown;
6168
- type UserControllerUpdateUserSettingData = {
6169
- requestBody: UpdateUserSettingDto;
6170
- };
6171
- type UserControllerUpdateUserSettingResponse = unknown;
6172
- type UserControllerGetAllUserSettingsByPageData = {
6173
- /**
6174
- * Page number
6175
- */
6176
- pageNo: number;
6177
- /**
6178
- * Page size
6179
- */
6180
- pageSize: number;
6181
- };
6182
- type UserControllerGetAllUserSettingsByPageResponse = unknown;
6183
- type UserControllerGetAssetLiabilitySummaryResponse = unknown;
6184
- type PropertyControllerGetAllResponse = unknown;
6185
- type PropertyControllerGetByKeyData = {
6186
- /**
6187
- * Property key
6188
- */
6189
- key: string;
6190
- };
6191
- type PropertyControllerGetByKeyResponse = unknown;
6192
- type PropertyControllerUpdateData = {
6193
- /**
6194
- * Property key
6195
- */
6196
- key: string;
6197
- requestBody: UpdatePropertyDto;
6198
- };
6199
- type PropertyControllerUpdateResponse = unknown;
6200
- type PropertyControllerDeleteData = {
6201
- /**
6202
- * Property key
6203
- */
6204
- key: string;
6205
- };
6206
- type PropertyControllerDeleteResponse = void;
6207
6474
  type TransactionRuleControllerCreateData = {
6208
6475
  /**
6209
6476
  * Region code for tenant context
@@ -6467,7 +6734,7 @@ type ReconciliationControllerHistoryData = {
6467
6734
  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';
6468
6735
  };
6469
6736
  type ReconciliationControllerHistoryResponse = Array<ReconciliationRecordDto>;
6470
- type ExportControllerExportBeancountResponse = unknown;
6737
+ type ExportControllerExportBeancountResponse = Blob | File;
6471
6738
  type FileImportControllerImportFileData = {
6472
6739
  /**
6473
6740
  * Bill file to import
@@ -6691,6 +6958,21 @@ type PlatformControllerMatchPlatformsData = {
6691
6958
  region?: string;
6692
6959
  };
6693
6960
  type PlatformControllerMatchPlatformsResponse = PlatformMatchResponseDto;
6961
+ type PlatformControllerGetPlatformStandardsData = {
6962
+ /**
6963
+ * Platform ID (from a match result)
6964
+ */
6965
+ id: string;
6966
+ /**
6967
+ * 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.
6968
+ */
6969
+ region?: string;
6970
+ /**
6971
+ * Filter templates by account type (path first segment)
6972
+ */
6973
+ type?: 'Assets' | 'Liabilities' | 'Income' | 'Expenses' | 'Equity';
6974
+ };
6975
+ type PlatformControllerGetPlatformStandardsResponse = PlatformStandardsResponseDto;
6694
6976
  type PlatformControllerUpdateData = {
6695
6977
  /**
6696
6978
  * Platform ID
@@ -6790,6 +7072,14 @@ type AuthControllerAccessTokenLoginData = {
6790
7072
  requestBody: AnonymousLoginDto;
6791
7073
  };
6792
7074
  type AuthControllerAccessTokenLoginResponse = AnonymousLoginResponseDto;
7075
+ type ParserContributionControllerCreateData = {
7076
+ /**
7077
+ * Region code for tenant context (routing only; the institution region rides in the payload meta)
7078
+ */
7079
+ 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';
7080
+ requestBody: ParserContributionRequestDto;
7081
+ };
7082
+ type ParserContributionControllerCreateResponse = ParserContributionRelayResponseDto;
6793
7083
  type CacheControllerFlushCacheResponse = unknown;
6794
7084
  type ExchangeRateControllerGetExchangeRateData = {
6795
7085
  /**
@@ -7467,7 +7757,7 @@ type $OpenApiTs = {
7467
7757
  /**
7468
7758
  * Payee profile unverified successfully
7469
7759
  */
7470
- 200: PayeeProfileResponseDto;
7760
+ 204: void;
7471
7761
  /**
7472
7762
  * Admin access required
7473
7763
  */
@@ -7574,598 +7864,598 @@ type $OpenApiTs = {
7574
7864
  };
7575
7865
  };
7576
7866
  };
7577
- '/api/v1/{region}/bean/prices': {
7578
- post: {
7579
- req: PriceControllerCreateData;
7867
+ '/api/v1/{region}/reporting/portfolio/trends': {
7868
+ get: {
7869
+ req: ReportingControllerGetPortfolioTrendsData;
7580
7870
  res: {
7581
7871
  /**
7582
- * Price created successfully
7583
- */
7584
- 201: PriceResponseDto;
7585
- /**
7586
- * Currency or quoteCurrency commodity not found
7587
- */
7588
- 404: unknown;
7589
- /**
7590
- * Price already exists for this currency pair and date
7872
+ * Trends retrieved successfully
7591
7873
  */
7592
- 409: unknown;
7593
- };
7594
- };
7595
- get: {
7596
- req: PriceControllerFindAllData;
7597
- res: {
7874
+ 200: PortfolioTrendsResponseDto;
7598
7875
  /**
7599
- * Prices retrieved successfully
7876
+ * User not authenticated
7600
7877
  */
7601
- 200: PriceListResponseDto;
7878
+ 401: unknown;
7602
7879
  };
7603
7880
  };
7604
7881
  };
7605
- '/api/v1/{region}/bean/prices/{id}': {
7882
+ '/api/v1/{region}/reporting/cash-flow/trends': {
7606
7883
  get: {
7607
- req: PriceControllerFindOneData;
7608
- res: {
7609
- /**
7610
- * Price retrieved successfully
7611
- */
7612
- 200: PriceResponseDto;
7613
- /**
7614
- * Price not found
7615
- */
7616
- 404: unknown;
7617
- };
7618
- };
7619
- put: {
7620
- req: PriceControllerUpdateData;
7884
+ req: ReportingControllerGetCashFlowTrendsData;
7621
7885
  res: {
7622
7886
  /**
7623
- * Price updated successfully
7624
- */
7625
- 200: PriceResponseDto;
7626
- /**
7627
- * Price not found
7887
+ * Cash-flow trends retrieved successfully
7628
7888
  */
7629
- 404: unknown;
7889
+ 200: CashFlowTrendsResponseDto;
7630
7890
  /**
7631
- * Updated price conflicts with existing price
7891
+ * User not authenticated
7632
7892
  */
7633
- 409: unknown;
7893
+ 401: unknown;
7634
7894
  };
7635
7895
  };
7636
- delete: {
7637
- req: PriceControllerDeleteData;
7896
+ };
7897
+ '/api/v1/{region}/reporting/snapshots/generate': {
7898
+ post: {
7899
+ req: ReportingControllerGenerateSnapshotData;
7638
7900
  res: {
7639
7901
  /**
7640
- * Price deleted successfully
7902
+ * Snapshot generated successfully
7641
7903
  */
7642
- 204: void;
7904
+ 200: GenerateSnapshotResponse;
7643
7905
  /**
7644
- * Price not found
7906
+ * Invalid date format
7645
7907
  */
7646
- 404: unknown;
7647
- };
7648
- };
7649
- };
7650
- '/api/v1/{region}/bean/prices/bulk': {
7651
- post: {
7652
- req: PriceControllerBulkCreateData;
7653
- res: {
7908
+ 400: unknown;
7654
7909
  /**
7655
- * Prices created successfully
7910
+ * User not authenticated
7656
7911
  */
7657
- 201: Array<PriceResponseDto>;
7912
+ 401: unknown;
7658
7913
  };
7659
7914
  };
7660
7915
  };
7661
- '/api/v1/{region}/bean/recurring-rules': {
7916
+ '/api/v1/{region}/reporting/snapshots/backfill': {
7662
7917
  post: {
7663
- req: RecurringRuleControllerCreateData;
7918
+ req: ReportingControllerBackfillSnapshotsData;
7664
7919
  res: {
7665
7920
  /**
7666
- * Rule created successfully
7921
+ * Backfill completed successfully
7667
7922
  */
7668
- 201: RecurringRuleResponseDto;
7923
+ 200: BackfillSnapshotsResponse;
7669
7924
  /**
7670
- * Invalid input data (e.g., autoCreate without accounts)
7925
+ * Invalid date format or range
7671
7926
  */
7672
7927
  400: unknown;
7673
7928
  /**
7674
- * Rule with same name already exists
7929
+ * User not authenticated
7675
7930
  */
7676
- 409: unknown;
7677
- };
7678
- };
7679
- get: {
7680
- req: RecurringRuleControllerFindAllData;
7681
- res: {
7931
+ 401: unknown;
7682
7932
  /**
7683
- * Rules retrieved successfully
7933
+ * Backfill already in progress for this user
7684
7934
  */
7685
- 200: Array<RecurringRuleResponseDto>;
7935
+ 409: unknown;
7686
7936
  };
7687
7937
  };
7688
7938
  };
7689
- '/api/v1/{region}/bean/recurring-rules/from-transaction/{transactionId}': {
7939
+ '/api/v1/{region}/bean/prices': {
7690
7940
  post: {
7691
- req: RecurringRuleControllerCreateFromTransactionData;
7941
+ req: PriceControllerCreateData;
7692
7942
  res: {
7693
7943
  /**
7694
- * Rule created successfully
7944
+ * Price created successfully
7945
+ */
7946
+ 201: PriceResponseDto;
7947
+ /**
7948
+ * Currency or quoteCurrency commodity not found
7695
7949
  */
7696
- 201: RecurringRuleResponseDto;
7950
+ 404: unknown;
7697
7951
  /**
7698
- * Transaction not found
7952
+ * Price already exists for this currency pair and date
7699
7953
  */
7700
- 404: ApiProblemResponseDto;
7954
+ 409: unknown;
7955
+ };
7956
+ };
7957
+ get: {
7958
+ req: PriceControllerFindAllData;
7959
+ res: {
7701
7960
  /**
7702
- * Rule with same name already exists or transaction already linked
7961
+ * Prices retrieved successfully
7703
7962
  */
7704
- 409: ApiProblemResponseDto;
7963
+ 200: PriceListResponseDto;
7705
7964
  };
7706
7965
  };
7707
7966
  };
7708
- '/api/v1/{region}/bean/recurring-rules/{id}': {
7967
+ '/api/v1/{region}/bean/prices/{id}': {
7709
7968
  get: {
7710
- req: RecurringRuleControllerFindOneData;
7969
+ req: PriceControllerFindOneData;
7711
7970
  res: {
7712
7971
  /**
7713
- * Rule retrieved successfully
7972
+ * Price retrieved successfully
7714
7973
  */
7715
- 200: RecurringRuleResponseDto;
7974
+ 200: PriceResponseDto;
7716
7975
  /**
7717
- * Rule not found
7976
+ * Price not found
7718
7977
  */
7719
7978
  404: unknown;
7720
7979
  };
7721
7980
  };
7722
- patch: {
7723
- req: RecurringRuleControllerUpdateData;
7981
+ put: {
7982
+ req: PriceControllerUpdateData;
7724
7983
  res: {
7725
7984
  /**
7726
- * Rule updated successfully
7985
+ * Price updated successfully
7727
7986
  */
7728
- 200: RecurringRuleResponseDto;
7987
+ 200: PriceResponseDto;
7729
7988
  /**
7730
- * Invalid input data
7989
+ * Price not found
7731
7990
  */
7732
- 400: unknown;
7991
+ 404: unknown;
7733
7992
  /**
7734
- * Rule not found
7993
+ * Updated price conflicts with existing price
7735
7994
  */
7736
- 404: unknown;
7995
+ 409: unknown;
7737
7996
  };
7738
7997
  };
7739
7998
  delete: {
7740
- req: RecurringRuleControllerDeleteData;
7999
+ req: PriceControllerDeleteData;
7741
8000
  res: {
7742
8001
  /**
7743
- * Rule deleted successfully
8002
+ * Price deleted successfully
7744
8003
  */
7745
8004
  204: void;
7746
8005
  /**
7747
- * Rule not found
8006
+ * Price not found
7748
8007
  */
7749
8008
  404: unknown;
7750
8009
  };
7751
8010
  };
7752
8011
  };
7753
- '/api/v1/{region}/bean/recurring-rules/{id}/stats': {
7754
- get: {
7755
- req: RecurringRuleControllerGetWithStatsData;
8012
+ '/api/v1/{region}/bean/prices/bulk': {
8013
+ post: {
8014
+ req: PriceControllerBulkCreateData;
7756
8015
  res: {
7757
8016
  /**
7758
- * Rule with stats retrieved successfully
7759
- */
7760
- 200: RecurringRuleWithStatsResponseDto;
7761
- /**
7762
- * Rule not found
8017
+ * Prices created successfully
7763
8018
  */
7764
- 404: unknown;
8019
+ 201: Array<PriceResponseDto>;
7765
8020
  };
7766
8021
  };
7767
8022
  };
7768
- '/api/v1/{region}/bean/expected-transactions': {
7769
- get: {
7770
- req: ExpectedTransactionControllerFindAllData;
8023
+ '/api/v1/users': {
8024
+ delete: {
8025
+ req: UserControllerDeleteOwnUserData;
7771
8026
  res: {
7772
8027
  /**
7773
- * Expected transactions retrieved successfully
8028
+ * User deleted successfully
7774
8029
  */
7775
- 200: ExpectedTransactionListResponseDto;
7776
- };
7777
- };
7778
- };
7779
- '/api/v1/{region}/bean/expected-transactions/overdue': {
7780
- get: {
7781
- req: ExpectedTransactionControllerFindOverdueData;
7782
- res: {
8030
+ 204: void;
7783
8031
  /**
7784
- * Overdue transactions retrieved successfully
8032
+ * Invalid access token
7785
8033
  */
7786
- 200: ExpectedTransactionListResponseDto;
8034
+ 403: unknown;
7787
8035
  };
7788
8036
  };
7789
- };
7790
- '/api/v1/{region}/bean/expected-transactions/{id}': {
7791
8037
  get: {
7792
- req: ExpectedTransactionControllerFindOneData;
8038
+ req: UserControllerGetUserData;
7793
8039
  res: {
7794
8040
  /**
7795
- * Expected transaction retrieved successfully
7796
- */
7797
- 200: ExpectedTransactionResponseDto;
7798
- /**
7799
- * Expected transaction not found
8041
+ * User retrieved successfully
7800
8042
  */
7801
- 404: unknown;
8043
+ 200: UserResponseDto;
7802
8044
  };
7803
8045
  };
7804
- };
7805
- '/api/v1/{region}/bean/expected-transactions/{id}/skip': {
7806
8046
  post: {
7807
- req: ExpectedTransactionControllerSkipData;
8047
+ req: UserControllerSignupUserData;
7808
8048
  res: {
7809
8049
  /**
7810
- * Expected transaction skipped successfully
8050
+ * User created successfully
7811
8051
  */
7812
- 200: ExpectedTransactionResponseDto;
8052
+ 201: SignupResponseDto;
7813
8053
  /**
7814
- * Cannot skip - not in PENDING status
8054
+ * Invalid Turnstile token (when Turnstile is enabled)
7815
8055
  */
7816
8056
  400: unknown;
7817
8057
  /**
7818
- * Expected transaction not found
8058
+ * User signup is disabled
7819
8059
  */
7820
- 404: unknown;
8060
+ 403: unknown;
7821
8061
  };
7822
8062
  };
8063
+ };
8064
+ '/api/v1/users/{id}': {
7823
8065
  delete: {
7824
- req: ExpectedTransactionControllerUndoSkipData;
8066
+ req: UserControllerDeleteUserData;
7825
8067
  res: {
7826
8068
  /**
7827
- * Skip undone successfully
7828
- */
7829
- 200: ExpectedTransactionResponseDto;
7830
- /**
7831
- * Cannot undo - not in SKIPPED status
8069
+ * User deleted successfully
7832
8070
  */
7833
- 400: unknown;
8071
+ 204: void;
7834
8072
  /**
7835
- * Expected transaction not found
8073
+ * Cannot delete own account or insufficient permissions
7836
8074
  */
7837
- 404: unknown;
8075
+ 403: unknown;
7838
8076
  };
7839
8077
  };
7840
8078
  };
7841
- '/api/v1/{region}/bean/expected-transactions/{id}/match': {
7842
- post: {
7843
- req: ExpectedTransactionControllerConfirmMatchData;
8079
+ '/api/v1/users/{id}/info': {
8080
+ get: {
8081
+ req: UserControllerGetUserInfoData;
7844
8082
  res: {
7845
8083
  /**
7846
- * Match confirmed successfully
8084
+ * User info retrieved successfully
7847
8085
  */
7848
8086
  200: unknown;
7849
8087
  /**
7850
- * Cannot match - not in PENDING status
7851
- */
7852
- 400: unknown;
7853
- /**
7854
- * Expected or actual transaction not found
7855
- */
7856
- 404: unknown;
7857
- /**
7858
- * Actual transaction already matched to another rule
8088
+ * Cannot access other user info without admin permission
7859
8089
  */
7860
- 409: unknown;
8090
+ 403: unknown;
7861
8091
  };
7862
8092
  };
7863
- delete: {
7864
- req: ExpectedTransactionControllerUnmatchData;
8093
+ };
8094
+ '/api/v1/users/setting': {
8095
+ put: {
8096
+ req: UserControllerUpdateUserSettingData;
7865
8097
  res: {
7866
8098
  /**
7867
- * Match removed successfully
8099
+ * Settings updated successfully
7868
8100
  */
7869
8101
  200: unknown;
7870
8102
  /**
7871
- * Cannot unmatch - not in COMPLETED status
7872
- */
7873
- 400: unknown;
7874
- /**
7875
- * Expected transaction not found
8103
+ * Insufficient permissions
7876
8104
  */
7877
- 404: unknown;
8105
+ 403: unknown;
7878
8106
  };
7879
8107
  };
7880
8108
  };
7881
- '/api/v1/{region}/bean/expected-transactions/{id}/enter': {
7882
- post: {
7883
- req: ExpectedTransactionControllerEnterNowData;
8109
+ '/api/v1/users/settings-by-page': {
8110
+ get: {
8111
+ req: UserControllerGetAllUserSettingsByPageData;
7884
8112
  res: {
7885
8113
  /**
7886
- * Transaction created successfully
7887
- */
7888
- 201: unknown;
7889
- /**
7890
- * Cannot enter - not in PENDING status or missing accounts
7891
- */
7892
- 400: unknown;
7893
- /**
7894
- * Expected transaction or accounts not found
8114
+ * Settings list retrieved successfully
7895
8115
  */
7896
- 404: unknown;
8116
+ 200: unknown;
7897
8117
  };
7898
8118
  };
7899
8119
  };
7900
- '/api/v1/{region}/bean/recurring/forecast': {
8120
+ '/api/v1/users/asset-liability-summary': {
7901
8121
  get: {
7902
- req: ForecastControllerGetForecastData;
7903
8122
  res: {
7904
8123
  /**
7905
- * Forecast retrieved successfully
8124
+ * Summary retrieved successfully
7906
8125
  */
7907
- 200: ForecastResponseDto;
8126
+ 200: unknown;
7908
8127
  };
7909
8128
  };
7910
8129
  };
7911
- '/api/v1/{region}/reporting/portfolio/trends': {
8130
+ '/api/v1/admin/properties': {
7912
8131
  get: {
7913
- req: ReportingControllerGetPortfolioTrendsData;
7914
8132
  res: {
7915
8133
  /**
7916
- * Trends retrieved successfully
8134
+ * Properties retrieved successfully
7917
8135
  */
7918
- 200: PortfolioTrendsResponseDto;
8136
+ 200: unknown;
7919
8137
  /**
7920
- * User not authenticated
8138
+ * Unauthorized
7921
8139
  */
7922
8140
  401: unknown;
8141
+ /**
8142
+ * Forbidden - insufficient permissions
8143
+ */
8144
+ 403: unknown;
7923
8145
  };
7924
8146
  };
7925
8147
  };
7926
- '/api/v1/{region}/reporting/cash-flow/trends': {
8148
+ '/api/v1/admin/properties/{key}': {
7927
8149
  get: {
7928
- req: ReportingControllerGetCashFlowTrendsData;
8150
+ req: PropertyControllerGetByKeyData;
7929
8151
  res: {
7930
8152
  /**
7931
- * Cash-flow trends retrieved successfully
8153
+ * Property retrieved successfully
7932
8154
  */
7933
- 200: CashFlowTrendsResponseDto;
8155
+ 200: unknown;
7934
8156
  /**
7935
- * User not authenticated
8157
+ * Unauthorized
7936
8158
  */
7937
8159
  401: unknown;
8160
+ /**
8161
+ * Forbidden - insufficient permissions
8162
+ */
8163
+ 403: unknown;
8164
+ /**
8165
+ * Property not found
8166
+ */
8167
+ 404: unknown;
7938
8168
  };
7939
8169
  };
7940
- };
7941
- '/api/v1/{region}/reporting/snapshots/generate': {
7942
- post: {
7943
- req: ReportingControllerGenerateSnapshotData;
8170
+ put: {
8171
+ req: PropertyControllerUpdateData;
7944
8172
  res: {
7945
8173
  /**
7946
- * Snapshot generated successfully
8174
+ * Property updated successfully
7947
8175
  */
7948
- 200: GenerateSnapshotResponse;
8176
+ 200: unknown;
7949
8177
  /**
7950
- * Invalid date format
8178
+ * Unauthorized
7951
8179
  */
7952
- 400: unknown;
8180
+ 401: unknown;
7953
8181
  /**
7954
- * User not authenticated
8182
+ * Forbidden - insufficient permissions
8183
+ */
8184
+ 403: unknown;
8185
+ };
8186
+ };
8187
+ delete: {
8188
+ req: PropertyControllerDeleteData;
8189
+ res: {
8190
+ /**
8191
+ * Property deleted successfully
8192
+ */
8193
+ 204: void;
8194
+ /**
8195
+ * Unauthorized
7955
8196
  */
7956
8197
  401: unknown;
8198
+ /**
8199
+ * Forbidden - insufficient permissions
8200
+ */
8201
+ 403: unknown;
8202
+ /**
8203
+ * Property not found
8204
+ */
8205
+ 404: unknown;
7957
8206
  };
7958
8207
  };
7959
8208
  };
7960
- '/api/v1/{region}/reporting/snapshots/backfill': {
8209
+ '/api/v1/{region}/bean/recurring-rules': {
7961
8210
  post: {
7962
- req: ReportingControllerBackfillSnapshotsData;
8211
+ req: RecurringRuleControllerCreateData;
7963
8212
  res: {
7964
8213
  /**
7965
- * Backfill completed successfully
8214
+ * Rule created successfully
7966
8215
  */
7967
- 200: BackfillSnapshotsResponse;
8216
+ 201: RecurringRuleResponseDto;
7968
8217
  /**
7969
- * Invalid date format or range
8218
+ * Invalid input data (e.g., autoCreate without accounts)
7970
8219
  */
7971
8220
  400: unknown;
7972
8221
  /**
7973
- * User not authenticated
8222
+ * Rule with same name already exists
7974
8223
  */
7975
- 401: unknown;
8224
+ 409: unknown;
8225
+ };
8226
+ };
8227
+ get: {
8228
+ req: RecurringRuleControllerFindAllData;
8229
+ res: {
7976
8230
  /**
7977
- * Backfill already in progress for this user
8231
+ * Rules retrieved successfully
7978
8232
  */
7979
- 409: unknown;
8233
+ 200: Array<RecurringRuleResponseDto>;
7980
8234
  };
7981
8235
  };
7982
8236
  };
7983
- '/api/v1/users': {
7984
- delete: {
7985
- req: UserControllerDeleteOwnUserData;
8237
+ '/api/v1/{region}/bean/recurring-rules/from-transaction/{transactionId}': {
8238
+ post: {
8239
+ req: RecurringRuleControllerCreateFromTransactionData;
7986
8240
  res: {
7987
8241
  /**
7988
- * User deleted successfully
8242
+ * Rule created successfully
7989
8243
  */
7990
- 204: void;
8244
+ 201: RecurringRuleResponseDto;
7991
8245
  /**
7992
- * Invalid access token
8246
+ * Transaction not found
7993
8247
  */
7994
- 403: unknown;
8248
+ 404: ApiProblemResponseDto;
8249
+ /**
8250
+ * Rule with same name already exists or transaction already linked
8251
+ */
8252
+ 409: ApiProblemResponseDto;
7995
8253
  };
7996
8254
  };
8255
+ };
8256
+ '/api/v1/{region}/bean/recurring-rules/{id}': {
7997
8257
  get: {
7998
- req: UserControllerGetUserData;
8258
+ req: RecurringRuleControllerFindOneData;
7999
8259
  res: {
8000
8260
  /**
8001
- * User retrieved successfully
8261
+ * Rule retrieved successfully
8002
8262
  */
8003
- 200: UserResponseDto;
8263
+ 200: RecurringRuleResponseDto;
8264
+ /**
8265
+ * Rule not found
8266
+ */
8267
+ 404: unknown;
8004
8268
  };
8005
8269
  };
8006
- post: {
8007
- req: UserControllerSignupUserData;
8270
+ patch: {
8271
+ req: RecurringRuleControllerUpdateData;
8008
8272
  res: {
8009
8273
  /**
8010
- * User created successfully
8274
+ * Rule updated successfully
8011
8275
  */
8012
- 201: SignupResponseDto;
8276
+ 200: RecurringRuleResponseDto;
8013
8277
  /**
8014
- * Invalid Turnstile token (when Turnstile is enabled)
8278
+ * Invalid input data
8015
8279
  */
8016
8280
  400: unknown;
8017
8281
  /**
8018
- * User signup is disabled
8282
+ * Rule not found
8019
8283
  */
8020
- 403: unknown;
8284
+ 404: unknown;
8021
8285
  };
8022
8286
  };
8023
- };
8024
- '/api/v1/users/{id}': {
8025
8287
  delete: {
8026
- req: UserControllerDeleteUserData;
8288
+ req: RecurringRuleControllerDeleteData;
8027
8289
  res: {
8028
8290
  /**
8029
- * User deleted successfully
8291
+ * Rule deleted successfully
8030
8292
  */
8031
8293
  204: void;
8032
8294
  /**
8033
- * Cannot delete own account or insufficient permissions
8295
+ * Rule not found
8034
8296
  */
8035
- 403: unknown;
8297
+ 404: unknown;
8036
8298
  };
8037
8299
  };
8038
8300
  };
8039
- '/api/v1/users/{id}/info': {
8301
+ '/api/v1/{region}/bean/recurring-rules/{id}/stats': {
8040
8302
  get: {
8041
- req: UserControllerGetUserInfoData;
8303
+ req: RecurringRuleControllerGetWithStatsData;
8042
8304
  res: {
8043
8305
  /**
8044
- * User info retrieved successfully
8306
+ * Rule with stats retrieved successfully
8045
8307
  */
8046
- 200: unknown;
8308
+ 200: RecurringRuleWithStatsResponseDto;
8047
8309
  /**
8048
- * Cannot access other user info without admin permission
8310
+ * Rule not found
8049
8311
  */
8050
- 403: unknown;
8312
+ 404: unknown;
8051
8313
  };
8052
8314
  };
8053
8315
  };
8054
- '/api/v1/users/setting': {
8055
- put: {
8056
- req: UserControllerUpdateUserSettingData;
8316
+ '/api/v1/{region}/bean/expected-transactions': {
8317
+ get: {
8318
+ req: ExpectedTransactionControllerFindAllData;
8057
8319
  res: {
8058
8320
  /**
8059
- * Settings updated successfully
8060
- */
8061
- 200: unknown;
8062
- /**
8063
- * Insufficient permissions
8321
+ * Expected transactions retrieved successfully
8064
8322
  */
8065
- 403: unknown;
8323
+ 200: ExpectedTransactionListResponseDto;
8066
8324
  };
8067
8325
  };
8068
8326
  };
8069
- '/api/v1/users/settings-by-page': {
8327
+ '/api/v1/{region}/bean/expected-transactions/overdue': {
8070
8328
  get: {
8071
- req: UserControllerGetAllUserSettingsByPageData;
8329
+ req: ExpectedTransactionControllerFindOverdueData;
8072
8330
  res: {
8073
8331
  /**
8074
- * Settings list retrieved successfully
8332
+ * Overdue transactions retrieved successfully
8075
8333
  */
8076
- 200: unknown;
8334
+ 200: ExpectedTransactionListResponseDto;
8077
8335
  };
8078
8336
  };
8079
8337
  };
8080
- '/api/v1/users/asset-liability-summary': {
8338
+ '/api/v1/{region}/bean/expected-transactions/{id}': {
8081
8339
  get: {
8340
+ req: ExpectedTransactionControllerFindOneData;
8082
8341
  res: {
8083
8342
  /**
8084
- * Summary retrieved successfully
8343
+ * Expected transaction retrieved successfully
8085
8344
  */
8086
- 200: unknown;
8345
+ 200: ExpectedTransactionResponseDto;
8346
+ /**
8347
+ * Expected transaction not found
8348
+ */
8349
+ 404: unknown;
8087
8350
  };
8088
8351
  };
8089
8352
  };
8090
- '/api/v1/admin/properties': {
8091
- get: {
8353
+ '/api/v1/{region}/bean/expected-transactions/{id}/skip': {
8354
+ post: {
8355
+ req: ExpectedTransactionControllerSkipData;
8092
8356
  res: {
8093
8357
  /**
8094
- * Properties retrieved successfully
8358
+ * Expected transaction skipped successfully
8095
8359
  */
8096
- 200: unknown;
8360
+ 200: ExpectedTransactionResponseDto;
8097
8361
  /**
8098
- * Unauthorized
8362
+ * Cannot skip - not in PENDING status
8099
8363
  */
8100
- 401: unknown;
8364
+ 400: unknown;
8101
8365
  /**
8102
- * Forbidden - insufficient permissions
8366
+ * Expected transaction not found
8103
8367
  */
8104
- 403: unknown;
8368
+ 404: unknown;
8105
8369
  };
8106
8370
  };
8107
- };
8108
- '/api/v1/admin/properties/{key}': {
8109
- get: {
8110
- req: PropertyControllerGetByKeyData;
8371
+ delete: {
8372
+ req: ExpectedTransactionControllerUndoSkipData;
8111
8373
  res: {
8112
8374
  /**
8113
- * Property retrieved successfully
8114
- */
8115
- 200: unknown;
8116
- /**
8117
- * Unauthorized
8375
+ * Skip undone successfully
8118
8376
  */
8119
- 401: unknown;
8377
+ 204: void;
8120
8378
  /**
8121
- * Forbidden - insufficient permissions
8379
+ * Cannot undo - not in SKIPPED status
8122
8380
  */
8123
- 403: unknown;
8381
+ 400: unknown;
8124
8382
  /**
8125
- * Property not found
8383
+ * Expected transaction not found
8126
8384
  */
8127
8385
  404: unknown;
8128
8386
  };
8129
8387
  };
8130
- put: {
8131
- req: PropertyControllerUpdateData;
8388
+ };
8389
+ '/api/v1/{region}/bean/expected-transactions/{id}/match': {
8390
+ post: {
8391
+ req: ExpectedTransactionControllerConfirmMatchData;
8132
8392
  res: {
8133
8393
  /**
8134
- * Property updated successfully
8394
+ * Match confirmed successfully
8135
8395
  */
8136
8396
  200: unknown;
8137
8397
  /**
8138
- * Unauthorized
8398
+ * Cannot match - not in PENDING status
8139
8399
  */
8140
- 401: unknown;
8400
+ 400: unknown;
8141
8401
  /**
8142
- * Forbidden - insufficient permissions
8402
+ * Expected or actual transaction not found
8143
8403
  */
8144
- 403: unknown;
8404
+ 404: unknown;
8405
+ /**
8406
+ * Actual transaction already matched to another rule
8407
+ */
8408
+ 409: unknown;
8145
8409
  };
8146
8410
  };
8147
8411
  delete: {
8148
- req: PropertyControllerDeleteData;
8412
+ req: ExpectedTransactionControllerUnmatchData;
8149
8413
  res: {
8150
8414
  /**
8151
- * Property deleted successfully
8415
+ * Match removed successfully
8152
8416
  */
8153
8417
  204: void;
8154
8418
  /**
8155
- * Unauthorized
8419
+ * Cannot unmatch - not in COMPLETED status
8156
8420
  */
8157
- 401: unknown;
8421
+ 400: unknown;
8158
8422
  /**
8159
- * Forbidden - insufficient permissions
8423
+ * Expected transaction not found
8160
8424
  */
8161
- 403: unknown;
8425
+ 404: unknown;
8426
+ };
8427
+ };
8428
+ };
8429
+ '/api/v1/{region}/bean/expected-transactions/{id}/enter': {
8430
+ post: {
8431
+ req: ExpectedTransactionControllerEnterNowData;
8432
+ res: {
8162
8433
  /**
8163
- * Property not found
8434
+ * Transaction created successfully
8435
+ */
8436
+ 201: unknown;
8437
+ /**
8438
+ * Cannot enter - not in PENDING status or missing accounts
8439
+ */
8440
+ 400: unknown;
8441
+ /**
8442
+ * Expected transaction or accounts not found
8164
8443
  */
8165
8444
  404: unknown;
8166
8445
  };
8167
8446
  };
8168
8447
  };
8448
+ '/api/v1/{region}/bean/recurring/forecast': {
8449
+ get: {
8450
+ req: ForecastControllerGetForecastData;
8451
+ res: {
8452
+ /**
8453
+ * Forecast retrieved successfully
8454
+ */
8455
+ 200: ForecastResponseDto;
8456
+ };
8457
+ };
8458
+ };
8169
8459
  '/api/v1/{region}/bean/transaction-rules': {
8170
8460
  post: {
8171
8461
  req: TransactionRuleControllerCreateData;
@@ -8563,7 +8853,10 @@ type $OpenApiTs = {
8563
8853
  '/api/v1/{region}/bean/export/beancount': {
8564
8854
  get: {
8565
8855
  res: {
8566
- 200: unknown;
8856
+ /**
8857
+ * ZIP archive (application/zip) streamed as an attachment
8858
+ */
8859
+ 200: Blob | File;
8567
8860
  };
8568
8861
  };
8569
8862
  };
@@ -8944,6 +9237,17 @@ type $OpenApiTs = {
8944
9237
  };
8945
9238
  };
8946
9239
  };
9240
+ '/api/v1/bean/platforms/{id}/standards': {
9241
+ get: {
9242
+ req: PlatformControllerGetPlatformStandardsData;
9243
+ res: {
9244
+ /**
9245
+ * Resolved region plus the merged account-standard catalog of that region (groupable by productCategory client-side)
9246
+ */
9247
+ 200: PlatformStandardsResponseDto;
9248
+ };
9249
+ };
9250
+ };
8947
9251
  '/api/v1/bean/platforms/{id}': {
8948
9252
  put: {
8949
9253
  req: PlatformControllerUpdateData;
@@ -9088,10 +9392,48 @@ type $OpenApiTs = {
9088
9392
  };
9089
9393
  };
9090
9394
  };
9395
+ '/api/v1/{region}/community/parser-contributions': {
9396
+ post: {
9397
+ req: ParserContributionControllerCreateData;
9398
+ res: {
9399
+ /**
9400
+ * Issue created by the bot
9401
+ */
9402
+ 201: ParserContributionRelayResponseDto;
9403
+ /**
9404
+ * Unauthorized
9405
+ */
9406
+ 401: ApiProblemResponseDto;
9407
+ /**
9408
+ * Validation failed (institution slug, empty samples, row/cell size limits)
9409
+ */
9410
+ 422: ApiProblemResponseDto;
9411
+ /**
9412
+ * Rate limited (5 submissions per user per hour)
9413
+ */
9414
+ 429: ApiProblemResponseDto;
9415
+ /**
9416
+ * Relay not configured on this deployment — clients fall back to the clipboard flow
9417
+ */
9418
+ 501: ApiProblemResponseDto;
9419
+ /**
9420
+ * GitHub bot failure (upstream), safe to retry
9421
+ */
9422
+ 502: ApiProblemResponseDto;
9423
+ };
9424
+ };
9425
+ };
9091
9426
  '/api/v1/cache/flush': {
9092
9427
  post: {
9093
9428
  res: {
9094
- 201: unknown;
9429
+ /**
9430
+ * Cache flushed successfully
9431
+ */
9432
+ 200: unknown;
9433
+ /**
9434
+ * Admin access required
9435
+ */
9436
+ 403: ApiProblemResponseDto;
9095
9437
  };
9096
9438
  };
9097
9439
  };
@@ -9367,10 +9709,11 @@ declare class BeanTransactionsService {
9367
9709
  * @param data.offset Number of items to skip (default: 0)
9368
9710
  * @param data.dateFrom Filter by start date (inclusive), format: YYYY-MM-DD
9369
9711
  * @param data.dateTo Filter by end date (inclusive), format: YYYY-MM-DD
9370
- * @param data.status Filter by transaction status
9712
+ * @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).
9371
9713
  * @param data.search Search in narration and payee fields (max 200 chars)
9372
9714
  * @param data.accountId Filter by account ID (transactions with postings to this account)
9373
- * @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
9715
+ * @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).
9716
+ * @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.
9374
9717
  * @returns TransactionListResponseDto Transaction list
9375
9718
  * @throws ApiError
9376
9719
  */
@@ -9676,4 +10019,4 @@ type OpenAPIConfig = {
9676
10019
  };
9677
10020
  declare const OpenAPI: OpenAPIConfig;
9678
10021
 
9679
- 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 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 UserResponseDto, type UserSettingsResponseDto, 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 scenario, 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 };
10022
+ 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 };