@firela/api-types 0.0.0-canary.04678d31 → 0.0.0-canary.04a0615b

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,427 @@ 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: {
2104
+ [key: string]: unknown;
2105
+ } | null;
2106
+ };
2107
+ type UserResponseDto = {
2002
2108
  /**
2003
2109
  * User ID
2004
2110
  */
2005
- userId: string;
2006
- /**
2007
- * Rule name
2008
- */
2009
- name: string;
2111
+ id: string;
2010
2112
  /**
2011
- * Icon emoji
2113
+ * Assigned user role
2012
2114
  */
2013
- icon?: {
2014
- [key: string]: unknown;
2015
- };
2115
+ role: string;
2016
2116
  /**
2017
- * Recurring frequency
2117
+ * Permission strings
2018
2118
  */
2019
- frequency: string;
2119
+ permissions: Array<string>;
2020
2120
  /**
2021
- * Expected amount
2121
+ * User settings
2022
2122
  */
2023
- expectedAmount: number;
2123
+ settings: UserSettingsResponseDto;
2124
+ };
2125
+ type SignupDto = {
2024
2126
  /**
2025
- * Expected day of month
2127
+ * Cloudflare Turnstile verification token (optional when Turnstile disabled)
2026
2128
  */
2027
- expectedDay?: {
2028
- [key: string]: unknown;
2029
- };
2129
+ turnstileToken?: string;
2130
+ };
2131
+ type SignupResponseDto = {
2030
2132
  /**
2031
- * Custom interval in days
2133
+ * JWT auth token
2032
2134
  */
2033
- customIntervalDays?: {
2034
- [key: string]: unknown;
2035
- };
2135
+ authToken: string;
2036
2136
  /**
2037
- * Currency code
2137
+ * Auto-generated access token
2038
2138
  */
2039
- currency: string;
2139
+ accessToken: string;
2040
2140
  /**
2041
- * Payee matching pattern
2141
+ * Assigned user role
2042
2142
  */
2043
- matchPayeePattern?: {
2044
- [key: string]: unknown;
2045
- };
2143
+ role: 'USER' | 'ADMIN' | 'DEMO' | 'INACTIVE' | 'PAID' | 'OPS';
2144
+ };
2145
+ /**
2146
+ * Assigned user role
2147
+ */
2148
+ type role = 'USER' | 'ADMIN' | 'DEMO' | 'INACTIVE' | 'PAID' | 'OPS';
2149
+ type UpdateUserSettingDto = {
2046
2150
  /**
2047
- * Amount tolerance percentage
2151
+ * Security ID
2048
2152
  */
2049
- matchAmountTolerance: number;
2153
+ secId?: number;
2050
2154
  /**
2051
- * Default expense account
2155
+ * Annual interest rate
2052
2156
  */
2053
- defaultExpenseAccount?: {
2054
- [key: string]: unknown;
2055
- };
2157
+ annualInterestRate?: number;
2056
2158
  /**
2057
- * Default payment account
2159
+ * Currency code
2058
2160
  */
2059
- defaultPaymentAccount?: {
2060
- [key: string]: unknown;
2061
- };
2161
+ currency?: string;
2062
2162
  /**
2063
- * Default payee
2163
+ * Base currency code
2064
2164
  */
2065
- defaultPayee?: {
2066
- [key: string]: unknown;
2067
- };
2165
+ baseCurrency?: string;
2068
2166
  /**
2069
- * Whether rule is active
2167
+ * Benchmark symbol
2070
2168
  */
2071
- isActive: boolean;
2169
+ benchmark?: string;
2072
2170
  /**
2073
- * Rule start date (YYYY-MM-DD)
2171
+ * Color scheme
2074
2172
  */
2075
- startDate: string;
2173
+ colorScheme?: 'DARK' | 'LIGHT';
2076
2174
  /**
2077
- * Rule end date (YYYY-MM-DD)
2175
+ * Date range filter
2078
2176
  */
2079
- endDate?: {
2080
- [key: string]: unknown;
2081
- };
2177
+ dateRange?: string;
2082
2178
  /**
2083
- * Auto-create transaction on expected date
2179
+ * Emergency fund amount
2084
2180
  */
2085
- autoCreate: boolean;
2181
+ emergencyFund?: number;
2086
2182
  /**
2087
- * Last matched occurrence date (YYYY-MM-DD)
2183
+ * Account filter IDs
2088
2184
  */
2089
- lastOccurrence?: {
2090
- [key: string]: unknown;
2091
- };
2185
+ 'filters.accounts'?: Array<string>;
2092
2186
  /**
2093
- * Total matched transactions count
2187
+ * Asset class filters
2094
2188
  */
2095
- totalCount: number;
2189
+ 'filters.assetClasses'?: Array<string>;
2096
2190
  /**
2097
- * Created at timestamp
2191
+ * Data source filter
2098
2192
  */
2099
- createdAt: string;
2193
+ 'filters.dataSource'?: string;
2100
2194
  /**
2101
- * Updated at timestamp
2195
+ * Symbol filter
2102
2196
  */
2103
- updatedAt: string;
2197
+ 'filters.symbol'?: string;
2104
2198
  /**
2105
- * Number of pending expected transactions
2199
+ * Tag filters
2106
2200
  */
2107
- pendingCount: number;
2201
+ 'filters.tags'?: Array<string>;
2108
2202
  /**
2109
- * Number of overdue expected transactions
2203
+ * Enable experimental features
2110
2204
  */
2111
- overdueCount: number;
2205
+ isExperimentalFeatures?: boolean;
2112
2206
  /**
2113
- * Next expected date (YYYY-MM-DD)
2207
+ * Enable restricted view mode
2114
2208
  */
2115
- nextExpectedDate?: {
2116
- [key: string]: unknown;
2117
- };
2209
+ isRestrictedView?: boolean;
2118
2210
  /**
2119
- * Total amount of all matched transactions
2211
+ * Language code
2120
2212
  */
2121
- totalAmount: number;
2213
+ language?: string;
2122
2214
  /**
2123
- * Average amount per transaction
2215
+ * Locale code
2124
2216
  */
2125
- averageAmount: number;
2217
+ locale?: string;
2126
2218
  /**
2127
- * Number of matched transactions
2219
+ * Projected total amount
2128
2220
  */
2129
- transactionCount: number;
2221
+ projectedTotalAmount?: number;
2130
2222
  /**
2131
- * First matched transaction date (YYYY-MM-DD)
2223
+ * Retirement date in ISO 8601 format
2132
2224
  */
2133
- firstDate?: {
2134
- [key: string]: unknown;
2135
- };
2225
+ retirementDate?: string;
2136
2226
  /**
2137
- * Last matched transaction date (YYYY-MM-DD)
2227
+ * Savings rate percentage
2138
2228
  */
2139
- lastDate?: {
2140
- [key: string]: unknown;
2141
- };
2229
+ savingsRate?: number;
2142
2230
  /**
2143
- * Amount variance (standard deviation squared)
2231
+ * View mode
2144
2232
  */
2145
- variance: number;
2233
+ viewMode?: 'DEFAULT' | 'ZEN';
2234
+ };
2235
+ /**
2236
+ * Color scheme
2237
+ */
2238
+ type colorScheme = 'DARK' | 'LIGHT';
2239
+ /**
2240
+ * View mode
2241
+ */
2242
+ type viewMode = 'DEFAULT' | 'ZEN';
2243
+ type UpdatePropertyDto = {
2146
2244
  /**
2147
- * Number of upcoming expected transactions
2245
+ * Property value
2148
2246
  */
2149
- upcomingCount: number;
2247
+ value: string;
2150
2248
  };
2151
- type UpdateRecurringRuleDto = {
2249
+ type CreateRecurringRuleDto = {
2152
2250
  /**
2153
- * Rule name
2251
+ * Rule name (unique per user)
2154
2252
  */
2155
- name?: string;
2253
+ name: string;
2156
2254
  /**
2157
2255
  * Icon emoji
2158
2256
  */
@@ -2160,17 +2258,17 @@ type UpdateRecurringRuleDto = {
2160
2258
  /**
2161
2259
  * Recurring frequency
2162
2260
  */
2163
- frequency?: 'WEEKLY' | 'BIWEEKLY' | 'MONTHLY' | 'BIMONTHLY' | 'QUARTERLY' | 'YEARLY' | 'CUSTOM';
2261
+ frequency: 'WEEKLY' | 'BIWEEKLY' | 'MONTHLY' | 'BIMONTHLY' | 'QUARTERLY' | 'YEARLY' | 'CUSTOM';
2164
2262
  /**
2165
- * Expected amount
2263
+ * Expected amount (positive number)
2166
2264
  */
2167
- expectedAmount?: number;
2265
+ expectedAmount: number;
2168
2266
  /**
2169
2267
  * Expected day of month (1-31)
2170
2268
  */
2171
2269
  expectedDay?: number;
2172
2270
  /**
2173
- * Custom interval in days
2271
+ * Custom interval in days (required for CUSTOM frequency)
2174
2272
  */
2175
2273
  customIntervalDays?: number;
2176
2274
  /**
@@ -2178,109 +2276,141 @@ type UpdateRecurringRuleDto = {
2178
2276
  */
2179
2277
  currency?: string;
2180
2278
  /**
2181
- * Payee matching pattern
2279
+ * Payee matching pattern (supports wildcards)
2182
2280
  */
2183
2281
  matchPayeePattern?: string;
2184
2282
  /**
2185
2283
  * Amount tolerance percentage (0-1)
2186
2284
  */
2187
- matchAmountTolerance?: number;
2285
+ matchAmountTolerance: number;
2188
2286
  /**
2189
- * Default expense account
2287
+ * Default expense account for auto-create
2190
2288
  */
2191
2289
  defaultExpenseAccount?: string;
2192
2290
  /**
2193
- * Default payment account
2291
+ * Default payment account for auto-create
2194
2292
  */
2195
2293
  defaultPaymentAccount?: string;
2196
2294
  /**
2197
- * Default payee
2295
+ * Default payee for auto-create
2198
2296
  */
2199
2297
  defaultPayee?: string;
2200
2298
  /**
2201
- * Auto-create transaction
2299
+ * Auto-create transaction when expected date arrives
2202
2300
  */
2203
- autoCreate?: boolean;
2301
+ autoCreate: boolean;
2204
2302
  /**
2205
- * Rule active status
2303
+ * Rule start date (ISO format)
2206
2304
  */
2207
- isActive?: boolean;
2305
+ startDate?: string;
2208
2306
  /**
2209
2307
  * Rule end date (ISO format)
2210
2308
  */
2211
2309
  endDate?: string;
2212
2310
  };
2213
- type ExpectedTransactionRuleDto = {
2311
+ /**
2312
+ * Recurring frequency
2313
+ */
2314
+ type frequency = 'WEEKLY' | 'BIWEEKLY' | 'MONTHLY' | 'BIMONTHLY' | 'QUARTERLY' | 'YEARLY' | 'CUSTOM';
2315
+ type RecurringRuleResponseDto = {
2316
+ /**
2317
+ * Rule ID
2318
+ */
2319
+ id: string;
2320
+ /**
2321
+ * User ID
2322
+ */
2323
+ userId: string;
2214
2324
  /**
2215
2325
  * Rule name
2216
2326
  */
2217
2327
  name: string;
2218
2328
  /**
2219
- * Rule icon
2329
+ * Icon emoji
2220
2330
  */
2221
2331
  icon?: {
2222
2332
  [key: string]: unknown;
2223
2333
  };
2224
2334
  /**
2225
- * Rule frequency
2335
+ * Recurring frequency
2226
2336
  */
2227
2337
  frequency: string;
2228
2338
  /**
2229
- * Currency code
2339
+ * Expected amount
2230
2340
  */
2231
- currency: string;
2232
- };
2233
- type ExpectedTransactionResponseDto = {
2341
+ expectedAmount: number;
2234
2342
  /**
2235
- * Expected transaction ID
2343
+ * Expected day of month
2236
2344
  */
2237
- id: string;
2345
+ expectedDay?: {
2346
+ [key: string]: unknown;
2347
+ };
2238
2348
  /**
2239
- * User ID
2349
+ * Custom interval in days
2240
2350
  */
2241
- userId: string;
2351
+ customIntervalDays?: {
2352
+ [key: string]: unknown;
2353
+ };
2242
2354
  /**
2243
- * Associated rule ID
2355
+ * Currency code
2244
2356
  */
2245
- ruleId: string;
2357
+ currency: string;
2246
2358
  /**
2247
- * Expected date (YYYY-MM-DD)
2359
+ * Payee matching pattern
2248
2360
  */
2249
- expectedDate: string;
2361
+ matchPayeePattern?: {
2362
+ [key: string]: unknown;
2363
+ };
2250
2364
  /**
2251
- * Expected amount
2365
+ * Amount tolerance percentage
2252
2366
  */
2253
- expectedAmount: number;
2367
+ matchAmountTolerance: number;
2254
2368
  /**
2255
- * Status (PENDING, COMPLETED, SKIPPED)
2369
+ * Default expense account
2256
2370
  */
2257
- status: string;
2371
+ defaultExpenseAccount?: {
2372
+ [key: string]: unknown;
2373
+ };
2258
2374
  /**
2259
- * Matched transaction ID
2375
+ * Default payment account
2260
2376
  */
2261
- matchedTransactionId?: {
2377
+ defaultPaymentAccount?: {
2262
2378
  [key: string]: unknown;
2263
2379
  };
2264
2380
  /**
2265
- * Match timestamp (ISO 8601)
2381
+ * Default payee
2266
2382
  */
2267
- matchedAt?: {
2383
+ defaultPayee?: {
2268
2384
  [key: string]: unknown;
2269
2385
  };
2270
2386
  /**
2271
- * Match confidence score (0-1)
2387
+ * Whether rule is active
2272
2388
  */
2273
- matchConfidence?: {
2389
+ isActive: boolean;
2390
+ /**
2391
+ * Rule start date (YYYY-MM-DD)
2392
+ */
2393
+ startDate: string;
2394
+ /**
2395
+ * Rule end date (YYYY-MM-DD)
2396
+ */
2397
+ endDate?: {
2274
2398
  [key: string]: unknown;
2275
2399
  };
2276
2400
  /**
2277
- * Whether this expected transaction is overdue
2401
+ * Auto-create transaction on expected date
2278
2402
  */
2279
- isOverdue: boolean;
2403
+ autoCreate: boolean;
2280
2404
  /**
2281
- * Rule information
2405
+ * Last matched occurrence date (YYYY-MM-DD)
2282
2406
  */
2283
- rule: ExpectedTransactionRuleDto;
2407
+ lastOccurrence?: {
2408
+ [key: string]: unknown;
2409
+ };
2410
+ /**
2411
+ * Total matched transactions count
2412
+ */
2413
+ totalCount: number;
2284
2414
  /**
2285
2415
  * Created at timestamp
2286
2416
  */
@@ -2290,434 +2420,428 @@ type ExpectedTransactionResponseDto = {
2290
2420
  */
2291
2421
  updatedAt: string;
2292
2422
  };
2293
- type ExpectedTransactionListResponseDto = {
2294
- items: Array<ExpectedTransactionResponseDto>;
2295
- /**
2296
- * Total count
2297
- */
2298
- total: number;
2299
- };
2300
- type ConfirmMatchDto = {
2423
+ type CreateRuleFromTransactionDto = {
2301
2424
  /**
2302
- * Transaction ID to match with
2425
+ * Recurring frequency
2303
2426
  */
2304
- transactionId: string;
2305
- };
2306
- type EnterNowDto = {
2427
+ frequency: 'WEEKLY' | 'BIWEEKLY' | 'MONTHLY' | 'BIMONTHLY' | 'QUARTERLY' | 'YEARLY' | 'CUSTOM';
2307
2428
  /**
2308
- * Override expense account (uses rule default if not provided)
2429
+ * Optional name override (default: transaction payee)
2309
2430
  */
2310
- expenseAccount?: string;
2431
+ name?: string;
2311
2432
  /**
2312
- * Override payment account (uses rule default if not provided)
2433
+ * Optional icon emoji
2313
2434
  */
2314
- paymentAccount?: string;
2435
+ icon?: string;
2436
+ };
2437
+ type RecurringRuleWithStatsResponseDto = {
2315
2438
  /**
2316
- * Override amount (uses expected amount if not provided)
2439
+ * Rule ID
2317
2440
  */
2318
- amount?: number;
2441
+ id: string;
2319
2442
  /**
2320
- * Override payee (uses rule default if not provided)
2443
+ * User ID
2321
2444
  */
2322
- payee?: string;
2445
+ userId: string;
2323
2446
  /**
2324
- * Optional narration
2447
+ * Rule name
2325
2448
  */
2326
- narration?: string;
2327
- };
2328
- type ForecastItemDto = {
2449
+ name: string;
2329
2450
  /**
2330
- * Rule name
2451
+ * Icon emoji
2331
2452
  */
2332
- rule: string;
2453
+ icon?: {
2454
+ [key: string]: unknown;
2455
+ };
2333
2456
  /**
2334
- * Rule ID
2457
+ * Recurring frequency
2335
2458
  */
2336
- ruleId: string;
2459
+ frequency: string;
2337
2460
  /**
2338
2461
  * Expected amount
2339
2462
  */
2340
- amount: number;
2463
+ expectedAmount: number;
2341
2464
  /**
2342
- * Expected date (YYYY-MM-DD)
2465
+ * Expected day of month
2343
2466
  */
2344
- date: string;
2467
+ expectedDay?: {
2468
+ [key: string]: unknown;
2469
+ };
2345
2470
  /**
2346
- * Rule icon emoji
2471
+ * Custom interval in days
2347
2472
  */
2348
- icon: string | null;
2473
+ customIntervalDays?: {
2474
+ [key: string]: unknown;
2475
+ };
2349
2476
  /**
2350
2477
  * Currency code
2351
2478
  */
2352
2479
  currency: string;
2353
- };
2354
- type MonthlyForecastDto = {
2355
2480
  /**
2356
- * Month (YYYY-MM)
2481
+ * Payee matching pattern
2357
2482
  */
2358
- month: string;
2483
+ matchPayeePattern?: {
2484
+ [key: string]: unknown;
2485
+ };
2359
2486
  /**
2360
- * Total expected outflow for the month
2487
+ * Amount tolerance percentage
2361
2488
  */
2362
- expectedOutflow: number;
2489
+ matchAmountTolerance: number;
2363
2490
  /**
2364
- * Number of expected transactions
2491
+ * Default expense account
2365
2492
  */
2366
- itemCount: number;
2493
+ defaultExpenseAccount?: {
2494
+ [key: string]: unknown;
2495
+ };
2367
2496
  /**
2368
- * Breakdown by currency
2497
+ * Default payment account
2369
2498
  */
2370
- byCurrency: {
2499
+ defaultPaymentAccount?: {
2371
2500
  [key: string]: unknown;
2372
2501
  };
2373
2502
  /**
2374
- * Individual forecast items
2503
+ * Default payee
2375
2504
  */
2376
- items: Array<ForecastItemDto>;
2377
- };
2378
- type ForecastResponseDto = {
2505
+ defaultPayee?: {
2506
+ [key: string]: unknown;
2507
+ };
2379
2508
  /**
2380
- * Monthly forecast data
2509
+ * Whether rule is active
2381
2510
  */
2382
- forecast: Array<MonthlyForecastDto>;
2511
+ isActive: boolean;
2383
2512
  /**
2384
- * Total expected outflow across all months
2513
+ * Rule start date (YYYY-MM-DD)
2385
2514
  */
2386
- totalOutflow: number;
2515
+ startDate: string;
2387
2516
  /**
2388
- * Total by currency across all months
2517
+ * Rule end date (YYYY-MM-DD)
2389
2518
  */
2390
- totalByCurrency: {
2519
+ endDate?: {
2391
2520
  [key: string]: unknown;
2392
2521
  };
2393
2522
  /**
2394
- * Number of active recurring rules included
2523
+ * Auto-create transaction on expected date
2395
2524
  */
2396
- rulesCount: number;
2525
+ autoCreate: boolean;
2397
2526
  /**
2398
- * Forecast period start date
2527
+ * Last matched occurrence date (YYYY-MM-DD)
2399
2528
  */
2400
- periodStart: string;
2529
+ lastOccurrence?: {
2530
+ [key: string]: unknown;
2531
+ };
2401
2532
  /**
2402
- * Forecast period end date
2533
+ * Total matched transactions count
2403
2534
  */
2404
- periodEnd: string;
2405
- };
2406
- type CurrencyBalanceDto = {
2535
+ totalCount: number;
2407
2536
  /**
2408
- * ISO 4217 currency code
2537
+ * Created at timestamp
2409
2538
  */
2410
- currency: string;
2539
+ createdAt: string;
2411
2540
  /**
2412
- * Balance amount
2541
+ * Updated at timestamp
2413
2542
  */
2414
- balance: string;
2415
- };
2416
- type TimeSeriesPointDto = {
2543
+ updatedAt: string;
2417
2544
  /**
2418
- * Date in YYYY-MM-DD format
2545
+ * Number of pending expected transactions
2419
2546
  */
2420
- date: string;
2547
+ pendingCount: number;
2421
2548
  /**
2422
- * Value at this date (in base currency)
2549
+ * Number of overdue expected transactions
2423
2550
  */
2424
- value: string;
2551
+ overdueCount: number;
2425
2552
  /**
2426
- * Change from previous point
2553
+ * Next expected date (YYYY-MM-DD)
2554
+ */
2555
+ nextExpectedDate?: {
2556
+ [key: string]: unknown;
2557
+ };
2558
+ /**
2559
+ * Total amount of all matched transactions
2560
+ */
2561
+ totalAmount: number;
2562
+ /**
2563
+ * Average amount per transaction
2564
+ */
2565
+ averageAmount: number;
2566
+ /**
2567
+ * Number of matched transactions
2568
+ */
2569
+ transactionCount: number;
2570
+ /**
2571
+ * First matched transaction date (YYYY-MM-DD)
2427
2572
  */
2428
- change?: {
2573
+ firstDate?: {
2429
2574
  [key: string]: unknown;
2430
2575
  };
2431
2576
  /**
2432
- * Total assets at this date (in base currency)
2577
+ * Last matched transaction date (YYYY-MM-DD)
2433
2578
  */
2434
- assets?: string;
2579
+ lastDate?: {
2580
+ [key: string]: unknown;
2581
+ };
2435
2582
  /**
2436
- * Total liabilities at this date (in base currency)
2583
+ * Amount variance (standard deviation squared)
2437
2584
  */
2438
- liabilities?: string;
2585
+ variance: number;
2439
2586
  /**
2440
- * Multi-currency breakdown for this point
2587
+ * Number of upcoming expected transactions
2441
2588
  */
2442
- byCurrency?: Array<CurrencyBalanceDto>;
2589
+ upcomingCount: number;
2443
2590
  };
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;
2591
+ type UpdateRecurringRuleDto = {
2453
2592
  /**
2454
- * Total change over period
2593
+ * Rule name (unique per user)
2455
2594
  */
2456
- totalChange: string;
2595
+ name?: string;
2457
2596
  /**
2458
- * Total change percentage
2597
+ * Icon emoji
2459
2598
  */
2460
- totalChangePercentage: string;
2461
- };
2462
- type MultiCurrencyPointDto = {
2599
+ icon?: string;
2463
2600
  /**
2464
- * Date in YYYY-MM-DD format
2601
+ * Recurring frequency
2465
2602
  */
2466
- date: string;
2603
+ frequency?: 'WEEKLY' | 'BIWEEKLY' | 'MONTHLY' | 'BIMONTHLY' | 'QUARTERLY' | 'YEARLY' | 'CUSTOM';
2467
2604
  /**
2468
- * Balances by currency
2605
+ * Expected amount (positive number)
2469
2606
  */
2470
- byCurrency: Array<CurrencyBalanceDto>;
2471
- };
2472
- type PortfolioTrendsResponseDto = {
2607
+ expectedAmount?: number;
2473
2608
  /**
2474
- * Time series data points
2609
+ * Expected day of month (1-31)
2475
2610
  */
2476
- series: Array<TimeSeriesPointDto>;
2611
+ expectedDay?: number;
2477
2612
  /**
2478
- * Period summary
2613
+ * Currency code
2479
2614
  */
2480
- summary: TrendSummaryDto;
2615
+ currency?: string;
2481
2616
  /**
2482
- * Period requested
2617
+ * Payee matching pattern (supports wildcards)
2483
2618
  */
2484
- period: string;
2619
+ matchPayeePattern?: string;
2485
2620
  /**
2486
- * Data granularity
2621
+ * Amount tolerance percentage (0-1)
2487
2622
  */
2488
- granularity: string;
2623
+ matchAmountTolerance?: number;
2489
2624
  /**
2490
- * Base currency for converted values
2625
+ * Default expense account for auto-create
2491
2626
  */
2492
- currency: string;
2627
+ defaultExpenseAccount?: string;
2493
2628
  /**
2494
- * Multi-currency time series (each point has currency breakdown)
2629
+ * Default payment account for auto-create
2495
2630
  */
2496
- byCurrency?: Array<MultiCurrencyPointDto>;
2631
+ defaultPaymentAccount?: string;
2497
2632
  /**
2498
- * Exchange rate warnings
2633
+ * Default payee for auto-create
2499
2634
  */
2500
- warnings?: Array<ExchangeRateWarningDto>;
2501
- };
2502
- type CashFlowPointDto = {
2635
+ defaultPayee?: string;
2503
2636
  /**
2504
- * Month key (YYYY-MM)
2637
+ * Auto-create transaction when expected date arrives
2505
2638
  */
2506
- month: string;
2639
+ autoCreate?: boolean;
2507
2640
  /**
2508
- * Income in base currency (absolute, converted)
2641
+ * Rule end date (ISO format)
2509
2642
  */
2510
- income: string;
2643
+ endDate?: string;
2511
2644
  /**
2512
- * Expense in base currency (absolute, converted)
2645
+ * Custom interval in days
2513
2646
  */
2514
- expense: string;
2647
+ customIntervalDays?: number;
2515
2648
  /**
2516
- * netSavings = income − expense (savings positive)
2649
+ * Rule active status
2517
2650
  */
2518
- netSavings: string;
2651
+ isActive?: boolean;
2519
2652
  };
2520
- type CashFlowTrendSummaryDto = {
2653
+ type ExpectedTransactionRuleDto = {
2521
2654
  /**
2522
- * Total income across the period
2655
+ * Rule name
2523
2656
  */
2524
- totalIncome: string;
2657
+ name: string;
2525
2658
  /**
2526
- * Total expense across the period
2659
+ * Rule icon
2527
2660
  */
2528
- totalExpense: string;
2661
+ icon?: {
2662
+ [key: string]: unknown;
2663
+ };
2529
2664
  /**
2530
- * income − expense across the period
2665
+ * Rule frequency
2531
2666
  */
2532
- totalNetSavings: string;
2667
+ frequency: string;
2533
2668
  /**
2534
- * totalNetSavings divided by the window length (N months, incl. zero-filled)
2669
+ * Currency code
2535
2670
  */
2536
- averageMonthlyNetSavings: string;
2671
+ currency: string;
2537
2672
  };
2538
- type CashFlowTrendsResponseDto = {
2673
+ type ExpectedTransactionResponseDto = {
2539
2674
  /**
2540
- * Monthly cash-flow series (fixed N-month window, zero-filled)
2675
+ * Expected transaction ID
2541
2676
  */
2542
- series: Array<CashFlowPointDto>;
2677
+ id: string;
2543
2678
  /**
2544
- * Period totals
2679
+ * User ID
2545
2680
  */
2546
- summary: CashFlowTrendSummaryDto;
2681
+ userId: string;
2547
2682
  /**
2548
- * Period requested
2683
+ * Associated rule ID
2549
2684
  */
2550
- period: string;
2685
+ ruleId: string;
2551
2686
  /**
2552
- * Data granularity (v1 returns month buckets)
2687
+ * Expected date (YYYY-MM-DD)
2553
2688
  */
2554
- granularity: string;
2689
+ expectedDate: string;
2555
2690
  /**
2556
- * Base currency for converted values
2691
+ * Expected amount
2557
2692
  */
2558
- currency: string;
2693
+ expectedAmount: number;
2559
2694
  /**
2560
- * Exchange rate warnings (e.g. missing rate for a currency)
2695
+ * Status (PENDING, COMPLETED, SKIPPED)
2561
2696
  */
2562
- warnings?: Array<ExchangeRateWarningDto>;
2563
- };
2564
- type GenerateSnapshotBody = unknown;
2565
- type GenerateSnapshotResponse = unknown;
2566
- type BackfillSnapshotsBody = unknown;
2567
- type BackfillSnapshotsResponse = unknown;
2568
- type DeleteOwnUserDto = {
2697
+ status: string;
2569
2698
  /**
2570
- * Access token for user verification
2699
+ * Matched transaction ID
2571
2700
  */
2572
- accessToken: string;
2573
- };
2574
- type UserSettingsResponseDto = {
2701
+ matchedTransactionId?: {
2702
+ [key: string]: unknown;
2703
+ };
2575
2704
  /**
2576
- * Base currency (ISO 4217) for net-worth/report aggregation. Independent of region (ADR-0006).
2705
+ * Match timestamp (ISO 8601)
2577
2706
  */
2578
- baseCurrency: string | null;
2579
- };
2580
- type UserResponseDto = {
2707
+ matchedAt?: {
2708
+ [key: string]: unknown;
2709
+ };
2581
2710
  /**
2582
- * User ID
2711
+ * Match confidence score (0-1)
2583
2712
  */
2584
- id: string;
2713
+ matchConfidence?: {
2714
+ [key: string]: unknown;
2715
+ };
2585
2716
  /**
2586
- * Assigned user role
2717
+ * Whether this expected transaction is overdue
2587
2718
  */
2588
- role: string;
2719
+ isOverdue: boolean;
2589
2720
  /**
2590
- * Permission strings
2721
+ * Rule information
2591
2722
  */
2592
- permissions: Array<string>;
2723
+ rule: ExpectedTransactionRuleDto;
2593
2724
  /**
2594
- * User settings
2725
+ * Created at timestamp
2595
2726
  */
2596
- settings: UserSettingsResponseDto;
2597
- };
2598
- type SignupDto = {
2727
+ createdAt: string;
2599
2728
  /**
2600
- * Cloudflare Turnstile verification token (optional when Turnstile disabled)
2729
+ * Updated at timestamp
2601
2730
  */
2602
- turnstileToken?: string;
2731
+ updatedAt: string;
2603
2732
  };
2604
- type SignupResponseDto = {
2605
- /**
2606
- * JWT auth token
2607
- */
2608
- authToken: string;
2733
+ type ExpectedTransactionListResponseDto = {
2734
+ items: Array<ExpectedTransactionResponseDto>;
2609
2735
  /**
2610
- * Auto-generated access token
2736
+ * Total count
2611
2737
  */
2612
- accessToken: string;
2738
+ total: number;
2739
+ };
2740
+ type ConfirmMatchDto = {
2613
2741
  /**
2614
- * Assigned user role
2742
+ * Transaction ID to match with
2615
2743
  */
2616
- role: 'USER' | 'ADMIN' | 'DEMO' | 'INACTIVE' | 'PAID' | 'OPS';
2744
+ transactionId: string;
2617
2745
  };
2618
- /**
2619
- * Assigned user role
2620
- */
2621
- type role = 'USER' | 'ADMIN' | 'DEMO' | 'INACTIVE' | 'PAID' | 'OPS';
2622
- type UpdateUserSettingDto = {
2746
+ type EnterNowDto = {
2623
2747
  /**
2624
- * Security ID
2748
+ * Override expense account (uses rule default if not provided)
2625
2749
  */
2626
- secId?: number;
2750
+ expenseAccount?: string;
2627
2751
  /**
2628
- * Annual interest rate
2752
+ * Override payment account (uses rule default if not provided)
2629
2753
  */
2630
- annualInterestRate?: number;
2754
+ paymentAccount?: string;
2631
2755
  /**
2632
- * Currency code
2756
+ * Override amount (uses expected amount if not provided)
2633
2757
  */
2634
- currency?: string;
2758
+ amount?: number;
2635
2759
  /**
2636
- * Base currency code
2760
+ * Override payee (uses rule default if not provided)
2637
2761
  */
2638
- baseCurrency?: string;
2762
+ payee?: string;
2639
2763
  /**
2640
- * Benchmark symbol
2764
+ * Optional narration
2641
2765
  */
2642
- benchmark?: string;
2766
+ narration?: string;
2767
+ };
2768
+ type ForecastItemDto = {
2643
2769
  /**
2644
- * Color scheme
2770
+ * Rule name
2645
2771
  */
2646
- colorScheme?: 'DARK' | 'LIGHT';
2772
+ rule: string;
2647
2773
  /**
2648
- * Date range filter
2774
+ * Rule ID
2649
2775
  */
2650
- dateRange?: string;
2776
+ ruleId: string;
2651
2777
  /**
2652
- * Emergency fund amount
2778
+ * Expected amount
2653
2779
  */
2654
- emergencyFund?: number;
2780
+ amount: number;
2655
2781
  /**
2656
- * Account filter IDs
2782
+ * Expected date (YYYY-MM-DD)
2657
2783
  */
2658
- 'filters.accounts'?: Array<string>;
2784
+ date: string;
2659
2785
  /**
2660
- * Asset class filters
2786
+ * Rule icon emoji
2661
2787
  */
2662
- 'filters.assetClasses'?: Array<string>;
2788
+ icon: string | null;
2663
2789
  /**
2664
- * Data source filter
2790
+ * Currency code
2665
2791
  */
2666
- 'filters.dataSource'?: string;
2792
+ currency: string;
2793
+ };
2794
+ type MonthlyForecastDto = {
2667
2795
  /**
2668
- * Symbol filter
2796
+ * Month (YYYY-MM)
2669
2797
  */
2670
- 'filters.symbol'?: string;
2798
+ month: string;
2671
2799
  /**
2672
- * Tag filters
2800
+ * Total expected outflow for the month
2673
2801
  */
2674
- 'filters.tags'?: Array<string>;
2802
+ expectedOutflow: number;
2675
2803
  /**
2676
- * Enable experimental features
2804
+ * Number of expected transactions
2677
2805
  */
2678
- isExperimentalFeatures?: boolean;
2806
+ itemCount: number;
2679
2807
  /**
2680
- * Enable restricted view mode
2808
+ * Breakdown by currency
2681
2809
  */
2682
- isRestrictedView?: boolean;
2810
+ byCurrency: {
2811
+ [key: string]: unknown;
2812
+ };
2683
2813
  /**
2684
- * Language code
2814
+ * Individual forecast items
2685
2815
  */
2686
- language?: string;
2816
+ items: Array<ForecastItemDto>;
2817
+ };
2818
+ type ForecastResponseDto = {
2687
2819
  /**
2688
- * Locale code
2820
+ * Monthly forecast data
2689
2821
  */
2690
- locale?: string;
2822
+ forecast: Array<MonthlyForecastDto>;
2691
2823
  /**
2692
- * Projected total amount
2824
+ * Total expected outflow across all months
2693
2825
  */
2694
- projectedTotalAmount?: number;
2826
+ totalOutflow: number;
2695
2827
  /**
2696
- * Retirement date in ISO 8601 format
2828
+ * Total by currency across all months
2697
2829
  */
2698
- retirementDate?: string;
2830
+ totalByCurrency: {
2831
+ [key: string]: unknown;
2832
+ };
2699
2833
  /**
2700
- * Savings rate percentage
2834
+ * Number of active recurring rules included
2701
2835
  */
2702
- savingsRate?: number;
2836
+ rulesCount: number;
2703
2837
  /**
2704
- * View mode
2838
+ * Forecast period start date
2705
2839
  */
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 = {
2840
+ periodStart: string;
2717
2841
  /**
2718
- * Property value
2842
+ * Forecast period end date
2719
2843
  */
2720
- value: string;
2844
+ periodEnd: string;
2721
2845
  };
2722
2846
  type CreateTransactionRuleDto = {
2723
2847
  name: string;
@@ -3021,14 +3145,14 @@ type UpdateTransactionRuleDto = {
3021
3145
  */
3022
3146
  amountMax?: number;
3023
3147
  priority?: number;
3024
- /**
3025
- * Enable or disable the rule
3026
- */
3027
- enabled?: boolean;
3028
3148
  additionalTags?: Array<unknown[]>;
3029
3149
  additionalMetadata?: {
3030
3150
  [key: string]: unknown;
3031
3151
  };
3152
+ /**
3153
+ * Enable or disable the rule
3154
+ */
3155
+ enabled?: boolean;
3032
3156
  };
3033
3157
  type TestRuleDto = {
3034
3158
  narration: string;
@@ -3772,10 +3896,26 @@ type ProcessNlpDto = {
3772
3896
  */
3773
3897
  selectedRuleId?: string;
3774
3898
  /**
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.
3899
+ * 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
3900
  */
3777
3901
  selectedAccount?: string;
3902
+ /**
3903
+ * 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.
3904
+ */
3905
+ viewpointAccount?: string;
3906
+ /**
3907
+ * 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.
3908
+ */
3909
+ viewpointCategory?: string;
3910
+ /**
3911
+ * 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.
3912
+ */
3913
+ viewpointFlow?: 'income' | 'expense';
3778
3914
  };
3915
+ /**
3916
+ * 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.
3917
+ */
3918
+ type viewpointFlow = 'income' | 'expense';
3779
3919
  type NlpTransactionInfoDto = {
3780
3920
  /**
3781
3921
  * Transaction ID
@@ -3994,6 +4134,16 @@ type NlpRuleConfirmationDataDto = {
3994
4134
  */
3995
4135
  reasons: Array<string>;
3996
4136
  };
4137
+ type NlpAccountCandidateDto = {
4138
+ /**
4139
+ * Canonical beancount account path (echo back on selection)
4140
+ */
4141
+ path: string;
4142
+ /**
4143
+ * Localized display name (ADR-0114 read-time projection, user locale)
4144
+ */
4145
+ name: string;
4146
+ };
3997
4147
  type NlpAccountConfirmationDataDto = {
3998
4148
  /**
3999
4149
  * The invalid account name
@@ -4004,9 +4154,9 @@ type NlpAccountConfirmationDataDto = {
4004
4154
  */
4005
4155
  suggestedAccount?: string;
4006
4156
  /**
4007
- * Similar accounts for user selection
4157
+ * Similar accounts for user selection (path + localized name, #680)
4008
4158
  */
4009
- similarAccounts: Array<string>;
4159
+ similarAccounts: Array<NlpAccountCandidateDto>;
4010
4160
  /**
4011
4161
  * Error message explaining the issue
4012
4162
  */
@@ -4330,7 +4480,7 @@ type PlatformListItemDto = {
4330
4480
  /**
4331
4481
  * Platform type
4332
4482
  */
4333
- type type3 = 'BANK' | 'BROKERAGE' | 'CRYPTO_EXCHANGE' | 'PAYMENT' | 'INVESTMENT' | 'INSURANCE' | 'OTHER';
4483
+ type type4 = 'BANK' | 'BROKERAGE' | 'CRYPTO_EXCHANGE' | 'PAYMENT' | 'INVESTMENT' | 'INSURANCE' | 'OTHER';
4334
4484
  type PlatformMatchResultDto = {
4335
4485
  /**
4336
4486
  * Global platform ID
@@ -4395,6 +4545,46 @@ type PlatformMatchResponseDto = {
4395
4545
  * Overall match quality — top row's tier, or 'none' when no hits
4396
4546
  */
4397
4547
  type matchType2 = 'none' | 'exact' | 'prefix' | 'substring';
4548
+ type PlatformStandardsPlatformDto = {
4549
+ /**
4550
+ * Global platform ID
4551
+ */
4552
+ id: string;
4553
+ /**
4554
+ * Platform name (e.g., "ICBC")
4555
+ */
4556
+ name: string;
4557
+ /**
4558
+ * Canonical identifier in ACCOUNT_RE format (e.g., "icbc")
4559
+ */
4560
+ canonical: string;
4561
+ /**
4562
+ * Suggested path segment — canonical PascalCased per hyphen-part, hyphens preserved (e.g. "Apple-Pay")
4563
+ */
4564
+ suggestedSegment: string;
4565
+ /**
4566
+ * Platform type
4567
+ */
4568
+ type: 'BANK' | 'BROKERAGE' | 'CRYPTO_EXCHANGE' | 'PAYMENT' | 'INVESTMENT' | 'INSURANCE' | 'OTHER';
4569
+ /**
4570
+ * Region-aware category (institution vocab, e.g. DigitalWallet/Bank) resolved against the final region. null = no region-aware suggestion; fall back to type.
4571
+ */
4572
+ category: string | null;
4573
+ };
4574
+ type PlatformStandardsResponseDto = {
4575
+ /**
4576
+ * The selected platform (institution lock source)
4577
+ */
4578
+ platform: PlatformStandardsPlatformDto;
4579
+ /**
4580
+ * 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.
4581
+ */
4582
+ region: string;
4583
+ /**
4584
+ * Candidate account-standard templates of the resolved region (groupable by productCategory client-side)
4585
+ */
4586
+ templates: Array<AccountStandardResponseDto>;
4587
+ };
4398
4588
  type CreatePlatformDto = {
4399
4589
  /**
4400
4590
  * Platform name
@@ -4571,11 +4761,11 @@ type PlatformGroupDto = {
4571
4761
  */
4572
4762
  platformName: string;
4573
4763
  /**
4574
- * Accounts within this platform
4764
+ * Accounts within this platform (Assets and Liabilities rows, #696)
4575
4765
  */
4576
4766
  accounts: Array<AccountItemDto>;
4577
4767
  /**
4578
- * FX-converted total balance in base currency
4768
+ * FX-converted total balance in base currency (nets Assets + Liabilities rows; can be negative)
4579
4769
  */
4580
4770
  totalBalance: string;
4581
4771
  /**
@@ -4587,7 +4777,7 @@ type PlatformGroupDto = {
4587
4777
  */
4588
4778
  convertedBalance?: string;
4589
4779
  /**
4590
- * Share of the grand converted total (0-100); 0 when grand total is 0
4780
+ * 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
4781
  */
4592
4782
  sharePct: number;
4593
4783
  };
@@ -4611,7 +4801,7 @@ type AccountExchangeRateWarningDto = {
4611
4801
  };
4612
4802
  type AccountsSummaryDto = {
4613
4803
  /**
4614
- * Total number of accounts
4804
+ * Total number of accounts (balance sheet: Assets + Liabilities, #696)
4615
4805
  */
4616
4806
  totalAccounts: number;
4617
4807
  /**
@@ -5077,7 +5267,7 @@ type HoldingPnlWarningDto = {
5077
5267
  /**
5078
5268
  * Warning type
5079
5269
  */
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';
5270
+ 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
5271
  type HoldingPnlResponseDto = {
5082
5272
  asOfDate: string;
5083
5273
  baseCurrency: string;
@@ -5104,6 +5294,81 @@ type AnonymousLoginResponseDto = {
5104
5294
  */
5105
5295
  authToken: string;
5106
5296
  };
5297
+ type ParserContributionMetaDto = {
5298
+ /**
5299
+ * Institution slug (lowercase kebab-case)
5300
+ */
5301
+ institution: string;
5302
+ region: 'cn' | 'us' | 'de' | 'fr' | 'gb' | 'hk' | 'jp' | 'sg' | 'au' | 'ca' | 'other';
5303
+ accountType: 'checking' | 'savings' | 'credit' | 'debit' | 'investment';
5304
+ format: 'csv' | 'xlsx' | 'pdf' | 'ofx' | 'qif';
5305
+ institutionDisplayName?: string;
5306
+ encoding?: string;
5307
+ /**
5308
+ * CSV delimiter character: ",", ";", "\t" or "|"
5309
+ */
5310
+ delimiter?: string;
5311
+ /**
5312
+ * Header row count; the client omits the field when it is 1
5313
+ */
5314
+ headerRows?: number;
5315
+ notes?: string;
5316
+ };
5317
+ type region = 'cn' | 'us' | 'de' | 'fr' | 'gb' | 'hk' | 'jp' | 'sg' | 'au' | 'ca' | 'other';
5318
+ type accountType = 'checking' | 'savings' | 'credit' | 'debit' | 'investment';
5319
+ type format = 'csv' | 'xlsx' | 'pdf' | 'ofx' | 'qif';
5320
+ type ParserContributionSamplesDto = {
5321
+ /**
5322
+ * Client-sanitized sample rows (key = column name, value = cell)
5323
+ */
5324
+ rows: Array<{
5325
+ [key: string]: unknown;
5326
+ }>;
5327
+ rawHeaders?: Array<string>;
5328
+ };
5329
+ type FieldHintDto = {
5330
+ columnName: string;
5331
+ /**
5332
+ * Date format, e.g. yyyy-MM-dd HH:mm
5333
+ */
5334
+ format?: string;
5335
+ signConvention?: 'negative-expense' | 'positive-expense' | 'separate-columns';
5336
+ creditColumn?: string;
5337
+ debitColumn?: string;
5338
+ };
5339
+ type signConvention = 'negative-expense' | 'positive-expense' | 'separate-columns';
5340
+ type ParserContributionFieldHintsDto = {
5341
+ date: FieldHintDto;
5342
+ amount: FieldHintDto;
5343
+ description?: FieldHintDto;
5344
+ balance?: FieldHintDto;
5345
+ payee?: FieldHintDto;
5346
+ reference?: FieldHintDto;
5347
+ category?: FieldHintDto;
5348
+ };
5349
+ type ExpectedTransactionDto = {
5350
+ date: string;
5351
+ amount: number;
5352
+ description: string;
5353
+ payee?: string;
5354
+ category?: string;
5355
+ };
5356
+ type ParserContributionExamplesDto = {
5357
+ expectedTransactions: Array<ExpectedTransactionDto>;
5358
+ };
5359
+ type ParserContributionRequestDto = {
5360
+ meta: ParserContributionMetaDto;
5361
+ samples: ParserContributionSamplesDto;
5362
+ fieldHints: ParserContributionFieldHintsDto;
5363
+ /**
5364
+ * Omitted entirely by the client when empty
5365
+ */
5366
+ examples?: ParserContributionExamplesDto;
5367
+ };
5368
+ type ParserContributionRelayResponseDto = {
5369
+ issueUrl: string;
5370
+ issueNumber: number;
5371
+ };
5107
5372
  type SymbolSearchResultDto = {
5108
5373
  symbol: string;
5109
5374
  name?: {
@@ -5345,7 +5610,7 @@ type AccountStandardsControllerGetTemplatesData = {
5345
5610
  */
5346
5611
  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
5612
  /**
5348
- * Search term for path or description
5613
+ * Search term for path, description, aliases, or localized display name
5349
5614
  */
5350
5615
  search?: string;
5351
5616
  /**
@@ -5389,7 +5654,7 @@ type TransactionControllerListData = {
5389
5654
  */
5390
5655
  accountId?: string;
5391
5656
  /**
5392
- * Filter by ADR-0075 functional category (Group segment); matches any posting to an Expenses/Income account whose derived Group segment equals this value
5657
+ * 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
5658
  */
5394
5659
  category?: string;
5395
5660
  /**
@@ -5400,6 +5665,10 @@ type TransactionControllerListData = {
5400
5665
  * Filter by end date (inclusive), format: YYYY-MM-DD
5401
5666
  */
5402
5667
  dateTo?: string;
5668
+ /**
5669
+ * 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.
5670
+ */
5671
+ flow?: 'income' | 'expense';
5403
5672
  /**
5404
5673
  * Number of items per page (1-100, default: 20)
5405
5674
  */
@@ -5417,9 +5686,9 @@ type TransactionControllerListData = {
5417
5686
  */
5418
5687
  search?: string;
5419
5688
  /**
5420
- * Filter by transaction status
5689
+ * 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
5690
  */
5422
- status?: 'ACTIVE' | 'VOIDED' | 'SUPERSEDED';
5691
+ status?: 'ACTIVE' | 'VOIDED' | 'SUPERSEDED' | 'ALL';
5423
5692
  };
5424
5693
  type TransactionControllerListResponse = TransactionListResponseDto;
5425
5694
  type TransactionControllerCreateBatchData = {
@@ -5736,7 +6005,7 @@ type PayeeProfileAdminControllerUnverifyData = {
5736
6005
  */
5737
6006
  id: string;
5738
6007
  };
5739
- type PayeeProfileAdminControllerUnverifyResponse = PayeeProfileResponseDto;
6008
+ type PayeeProfileAdminControllerUnverifyResponse = void;
5740
6009
  type CommodityControllerCreateData = {
5741
6010
  /**
5742
6011
  * Region code for tenant context
@@ -5812,6 +6081,55 @@ type CommodityControllerBulkCreateData = {
5812
6081
  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
6082
  };
5814
6083
  type CommodityControllerBulkCreateResponse = Array<CommodityResponseDto>;
6084
+ type ReportingControllerGetPortfolioTrendsData = {
6085
+ /**
6086
+ * Data granularity
6087
+ */
6088
+ granularity?: 'day' | 'week' | 'month';
6089
+ /**
6090
+ * Time period
6091
+ */
6092
+ period?: '1m' | '3m' | '6m' | '1y';
6093
+ /**
6094
+ * Region code for tenant context
6095
+ */
6096
+ 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';
6097
+ };
6098
+ type ReportingControllerGetPortfolioTrendsResponse = PortfolioTrendsResponseDto;
6099
+ type ReportingControllerGetCashFlowTrendsData = {
6100
+ /**
6101
+ * Data granularity (accepted for API symmetry; v1 returns month buckets)
6102
+ */
6103
+ granularity?: 'day' | 'week' | 'month';
6104
+ /**
6105
+ * Time period
6106
+ */
6107
+ period?: '1m' | '3m' | '6m' | '1y';
6108
+ /**
6109
+ * Region code for tenant context
6110
+ */
6111
+ 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';
6112
+ };
6113
+ type ReportingControllerGetCashFlowTrendsResponse = CashFlowTrendsResponseDto;
6114
+ type ReportingControllerGenerateSnapshotData = {
6115
+ /**
6116
+ * Region code for tenant context
6117
+ */
6118
+ 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';
6119
+ /**
6120
+ * Optional date (defaults to today)
6121
+ */
6122
+ requestBody: GenerateSnapshotBody;
6123
+ };
6124
+ type ReportingControllerGenerateSnapshotResponse = GenerateSnapshotResponse;
6125
+ type ReportingControllerBackfillSnapshotsData = {
6126
+ /**
6127
+ * Region code for tenant context
6128
+ */
6129
+ 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';
6130
+ requestBody: BackfillSnapshotsBody;
6131
+ };
6132
+ type ReportingControllerBackfillSnapshotsResponse = BackfillSnapshotsResponse;
5815
6133
  type PriceControllerCreateData = {
5816
6134
  /**
5817
6135
  * Region code for tenant context
@@ -5886,17 +6204,82 @@ type PriceControllerDeleteData = {
5886
6204
  /**
5887
6205
  * Region code for tenant context
5888
6206
  */
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';
6207
+ 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';
6208
+ };
6209
+ type PriceControllerDeleteResponse = void;
6210
+ type PriceControllerBulkCreateData = {
6211
+ /**
6212
+ * Region code for tenant context
6213
+ */
6214
+ 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';
6215
+ requestBody: Array<string>;
6216
+ };
6217
+ type PriceControllerBulkCreateResponse = Array<PriceResponseDto>;
6218
+ type UserControllerDeleteOwnUserData = {
6219
+ requestBody: DeleteOwnUserDto;
6220
+ };
6221
+ type UserControllerDeleteOwnUserResponse = void;
6222
+ type UserControllerGetUserData = {
6223
+ acceptLanguage: string;
6224
+ };
6225
+ type UserControllerGetUserResponse = UserResponseDto;
6226
+ type UserControllerSignupUserData = {
6227
+ requestBody: SignupDto;
6228
+ };
6229
+ type UserControllerSignupUserResponse = SignupResponseDto;
6230
+ type UserControllerDeleteUserData = {
6231
+ /**
6232
+ * User ID to delete
6233
+ */
6234
+ id: string;
6235
+ };
6236
+ type UserControllerDeleteUserResponse = void;
6237
+ type UserControllerGetUserInfoData = {
6238
+ /**
6239
+ * User ID
6240
+ */
6241
+ id: string;
6242
+ };
6243
+ type UserControllerGetUserInfoResponse = unknown;
6244
+ type UserControllerUpdateUserSettingData = {
6245
+ requestBody: UpdateUserSettingDto;
6246
+ };
6247
+ type UserControllerUpdateUserSettingResponse = unknown;
6248
+ type UserControllerGetAllUserSettingsByPageData = {
6249
+ /**
6250
+ * Page number
6251
+ */
6252
+ pageNo: number;
6253
+ /**
6254
+ * Page size
6255
+ */
6256
+ pageSize: number;
6257
+ };
6258
+ type UserControllerGetAllUserSettingsByPageResponse = unknown;
6259
+ type UserControllerGetAssetLiabilitySummaryResponse = unknown;
6260
+ type PropertyControllerGetAllResponse = unknown;
6261
+ type PropertyControllerGetByKeyData = {
6262
+ /**
6263
+ * Property key
6264
+ */
6265
+ key: string;
6266
+ };
6267
+ type PropertyControllerGetByKeyResponse = unknown;
6268
+ type PropertyControllerUpdateData = {
6269
+ /**
6270
+ * Property key
6271
+ */
6272
+ key: string;
6273
+ requestBody: UpdatePropertyDto;
5890
6274
  };
5891
- type PriceControllerDeleteResponse = void;
5892
- type PriceControllerBulkCreateData = {
6275
+ type PropertyControllerUpdateResponse = unknown;
6276
+ type PropertyControllerDeleteData = {
5893
6277
  /**
5894
- * Region code for tenant context
6278
+ * Property key
5895
6279
  */
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>;
6280
+ key: string;
5898
6281
  };
5899
- type PriceControllerBulkCreateResponse = Array<PriceResponseDto>;
6282
+ type PropertyControllerDeleteResponse = void;
5900
6283
  type RecurringRuleControllerCreateData = {
5901
6284
  /**
5902
6285
  * Region code for tenant context
@@ -6043,7 +6426,7 @@ type ExpectedTransactionControllerUndoSkipData = {
6043
6426
  */
6044
6427
  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
6428
  };
6046
- type ExpectedTransactionControllerUndoSkipResponse = ExpectedTransactionResponseDto;
6429
+ type ExpectedTransactionControllerUndoSkipResponse = void;
6047
6430
  type ExpectedTransactionControllerConfirmMatchData = {
6048
6431
  /**
6049
6432
  * Expected transaction ID
@@ -6066,7 +6449,7 @@ type ExpectedTransactionControllerUnmatchData = {
6066
6449
  */
6067
6450
  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
6451
  };
6069
- type ExpectedTransactionControllerUnmatchResponse = unknown;
6452
+ type ExpectedTransactionControllerUnmatchResponse = void;
6070
6453
  type ExpectedTransactionControllerEnterNowData = {
6071
6454
  /**
6072
6455
  * Expected transaction ID
@@ -6090,120 +6473,6 @@ type ForecastControllerGetForecastData = {
6090
6473
  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
6474
  };
6092
6475
  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
6476
  type TransactionRuleControllerCreateData = {
6208
6477
  /**
6209
6478
  * Region code for tenant context
@@ -6467,7 +6736,7 @@ type ReconciliationControllerHistoryData = {
6467
6736
  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
6737
  };
6469
6738
  type ReconciliationControllerHistoryResponse = Array<ReconciliationRecordDto>;
6470
- type ExportControllerExportBeancountResponse = unknown;
6739
+ type ExportControllerExportBeancountResponse = Blob | File;
6471
6740
  type FileImportControllerImportFileData = {
6472
6741
  /**
6473
6742
  * Bill file to import
@@ -6691,6 +6960,21 @@ type PlatformControllerMatchPlatformsData = {
6691
6960
  region?: string;
6692
6961
  };
6693
6962
  type PlatformControllerMatchPlatformsResponse = PlatformMatchResponseDto;
6963
+ type PlatformControllerGetPlatformStandardsData = {
6964
+ /**
6965
+ * Platform ID (from a match result)
6966
+ */
6967
+ id: string;
6968
+ /**
6969
+ * 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.
6970
+ */
6971
+ region?: string;
6972
+ /**
6973
+ * Filter templates by account type (path first segment)
6974
+ */
6975
+ type?: 'Assets' | 'Liabilities' | 'Income' | 'Expenses' | 'Equity';
6976
+ };
6977
+ type PlatformControllerGetPlatformStandardsResponse = PlatformStandardsResponseDto;
6694
6978
  type PlatformControllerUpdateData = {
6695
6979
  /**
6696
6980
  * Platform ID
@@ -6790,6 +7074,14 @@ type AuthControllerAccessTokenLoginData = {
6790
7074
  requestBody: AnonymousLoginDto;
6791
7075
  };
6792
7076
  type AuthControllerAccessTokenLoginResponse = AnonymousLoginResponseDto;
7077
+ type ParserContributionControllerCreateData = {
7078
+ /**
7079
+ * Region code for tenant context (routing only; the institution region rides in the payload meta)
7080
+ */
7081
+ 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';
7082
+ requestBody: ParserContributionRequestDto;
7083
+ };
7084
+ type ParserContributionControllerCreateResponse = ParserContributionRelayResponseDto;
6793
7085
  type CacheControllerFlushCacheResponse = unknown;
6794
7086
  type ExchangeRateControllerGetExchangeRateData = {
6795
7087
  /**
@@ -7467,7 +7759,7 @@ type $OpenApiTs = {
7467
7759
  /**
7468
7760
  * Payee profile unverified successfully
7469
7761
  */
7470
- 200: PayeeProfileResponseDto;
7762
+ 204: void;
7471
7763
  /**
7472
7764
  * Admin access required
7473
7765
  */
@@ -7574,598 +7866,598 @@ type $OpenApiTs = {
7574
7866
  };
7575
7867
  };
7576
7868
  };
7577
- '/api/v1/{region}/bean/prices': {
7578
- post: {
7579
- req: PriceControllerCreateData;
7869
+ '/api/v1/{region}/reporting/portfolio/trends': {
7870
+ get: {
7871
+ req: ReportingControllerGetPortfolioTrendsData;
7580
7872
  res: {
7581
7873
  /**
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
7874
+ * Trends retrieved successfully
7591
7875
  */
7592
- 409: unknown;
7593
- };
7594
- };
7595
- get: {
7596
- req: PriceControllerFindAllData;
7597
- res: {
7876
+ 200: PortfolioTrendsResponseDto;
7598
7877
  /**
7599
- * Prices retrieved successfully
7878
+ * User not authenticated
7600
7879
  */
7601
- 200: PriceListResponseDto;
7880
+ 401: unknown;
7602
7881
  };
7603
7882
  };
7604
7883
  };
7605
- '/api/v1/{region}/bean/prices/{id}': {
7884
+ '/api/v1/{region}/reporting/cash-flow/trends': {
7606
7885
  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;
7886
+ req: ReportingControllerGetCashFlowTrendsData;
7621
7887
  res: {
7622
7888
  /**
7623
- * Price updated successfully
7624
- */
7625
- 200: PriceResponseDto;
7626
- /**
7627
- * Price not found
7889
+ * Cash-flow trends retrieved successfully
7628
7890
  */
7629
- 404: unknown;
7891
+ 200: CashFlowTrendsResponseDto;
7630
7892
  /**
7631
- * Updated price conflicts with existing price
7893
+ * User not authenticated
7632
7894
  */
7633
- 409: unknown;
7895
+ 401: unknown;
7634
7896
  };
7635
7897
  };
7636
- delete: {
7637
- req: PriceControllerDeleteData;
7898
+ };
7899
+ '/api/v1/{region}/reporting/snapshots/generate': {
7900
+ post: {
7901
+ req: ReportingControllerGenerateSnapshotData;
7638
7902
  res: {
7639
7903
  /**
7640
- * Price deleted successfully
7904
+ * Snapshot generated successfully
7641
7905
  */
7642
- 204: void;
7906
+ 200: GenerateSnapshotResponse;
7643
7907
  /**
7644
- * Price not found
7908
+ * Invalid date format
7645
7909
  */
7646
- 404: unknown;
7647
- };
7648
- };
7649
- };
7650
- '/api/v1/{region}/bean/prices/bulk': {
7651
- post: {
7652
- req: PriceControllerBulkCreateData;
7653
- res: {
7910
+ 400: unknown;
7654
7911
  /**
7655
- * Prices created successfully
7912
+ * User not authenticated
7656
7913
  */
7657
- 201: Array<PriceResponseDto>;
7914
+ 401: unknown;
7658
7915
  };
7659
7916
  };
7660
7917
  };
7661
- '/api/v1/{region}/bean/recurring-rules': {
7918
+ '/api/v1/{region}/reporting/snapshots/backfill': {
7662
7919
  post: {
7663
- req: RecurringRuleControllerCreateData;
7920
+ req: ReportingControllerBackfillSnapshotsData;
7664
7921
  res: {
7665
7922
  /**
7666
- * Rule created successfully
7923
+ * Backfill completed successfully
7667
7924
  */
7668
- 201: RecurringRuleResponseDto;
7925
+ 200: BackfillSnapshotsResponse;
7669
7926
  /**
7670
- * Invalid input data (e.g., autoCreate without accounts)
7927
+ * Invalid date format or range
7671
7928
  */
7672
7929
  400: unknown;
7673
7930
  /**
7674
- * Rule with same name already exists
7931
+ * User not authenticated
7675
7932
  */
7676
- 409: unknown;
7677
- };
7678
- };
7679
- get: {
7680
- req: RecurringRuleControllerFindAllData;
7681
- res: {
7933
+ 401: unknown;
7682
7934
  /**
7683
- * Rules retrieved successfully
7935
+ * Backfill already in progress for this user
7684
7936
  */
7685
- 200: Array<RecurringRuleResponseDto>;
7937
+ 409: unknown;
7686
7938
  };
7687
7939
  };
7688
7940
  };
7689
- '/api/v1/{region}/bean/recurring-rules/from-transaction/{transactionId}': {
7941
+ '/api/v1/{region}/bean/prices': {
7690
7942
  post: {
7691
- req: RecurringRuleControllerCreateFromTransactionData;
7943
+ req: PriceControllerCreateData;
7692
7944
  res: {
7693
7945
  /**
7694
- * Rule created successfully
7946
+ * Price created successfully
7947
+ */
7948
+ 201: PriceResponseDto;
7949
+ /**
7950
+ * Currency or quoteCurrency commodity not found
7695
7951
  */
7696
- 201: RecurringRuleResponseDto;
7952
+ 404: unknown;
7697
7953
  /**
7698
- * Transaction not found
7954
+ * Price already exists for this currency pair and date
7699
7955
  */
7700
- 404: ApiProblemResponseDto;
7956
+ 409: unknown;
7957
+ };
7958
+ };
7959
+ get: {
7960
+ req: PriceControllerFindAllData;
7961
+ res: {
7701
7962
  /**
7702
- * Rule with same name already exists or transaction already linked
7963
+ * Prices retrieved successfully
7703
7964
  */
7704
- 409: ApiProblemResponseDto;
7965
+ 200: PriceListResponseDto;
7705
7966
  };
7706
7967
  };
7707
7968
  };
7708
- '/api/v1/{region}/bean/recurring-rules/{id}': {
7969
+ '/api/v1/{region}/bean/prices/{id}': {
7709
7970
  get: {
7710
- req: RecurringRuleControllerFindOneData;
7971
+ req: PriceControllerFindOneData;
7711
7972
  res: {
7712
7973
  /**
7713
- * Rule retrieved successfully
7974
+ * Price retrieved successfully
7714
7975
  */
7715
- 200: RecurringRuleResponseDto;
7976
+ 200: PriceResponseDto;
7716
7977
  /**
7717
- * Rule not found
7978
+ * Price not found
7718
7979
  */
7719
7980
  404: unknown;
7720
7981
  };
7721
7982
  };
7722
- patch: {
7723
- req: RecurringRuleControllerUpdateData;
7983
+ put: {
7984
+ req: PriceControllerUpdateData;
7724
7985
  res: {
7725
7986
  /**
7726
- * Rule updated successfully
7987
+ * Price updated successfully
7727
7988
  */
7728
- 200: RecurringRuleResponseDto;
7989
+ 200: PriceResponseDto;
7729
7990
  /**
7730
- * Invalid input data
7991
+ * Price not found
7731
7992
  */
7732
- 400: unknown;
7993
+ 404: unknown;
7733
7994
  /**
7734
- * Rule not found
7995
+ * Updated price conflicts with existing price
7735
7996
  */
7736
- 404: unknown;
7997
+ 409: unknown;
7737
7998
  };
7738
7999
  };
7739
8000
  delete: {
7740
- req: RecurringRuleControllerDeleteData;
8001
+ req: PriceControllerDeleteData;
7741
8002
  res: {
7742
8003
  /**
7743
- * Rule deleted successfully
8004
+ * Price deleted successfully
7744
8005
  */
7745
8006
  204: void;
7746
8007
  /**
7747
- * Rule not found
8008
+ * Price not found
7748
8009
  */
7749
8010
  404: unknown;
7750
8011
  };
7751
8012
  };
7752
8013
  };
7753
- '/api/v1/{region}/bean/recurring-rules/{id}/stats': {
7754
- get: {
7755
- req: RecurringRuleControllerGetWithStatsData;
8014
+ '/api/v1/{region}/bean/prices/bulk': {
8015
+ post: {
8016
+ req: PriceControllerBulkCreateData;
7756
8017
  res: {
7757
8018
  /**
7758
- * Rule with stats retrieved successfully
7759
- */
7760
- 200: RecurringRuleWithStatsResponseDto;
7761
- /**
7762
- * Rule not found
8019
+ * Prices created successfully
7763
8020
  */
7764
- 404: unknown;
8021
+ 201: Array<PriceResponseDto>;
7765
8022
  };
7766
8023
  };
7767
8024
  };
7768
- '/api/v1/{region}/bean/expected-transactions': {
7769
- get: {
7770
- req: ExpectedTransactionControllerFindAllData;
8025
+ '/api/v1/users': {
8026
+ delete: {
8027
+ req: UserControllerDeleteOwnUserData;
7771
8028
  res: {
7772
8029
  /**
7773
- * Expected transactions retrieved successfully
8030
+ * User deleted successfully
7774
8031
  */
7775
- 200: ExpectedTransactionListResponseDto;
7776
- };
7777
- };
7778
- };
7779
- '/api/v1/{region}/bean/expected-transactions/overdue': {
7780
- get: {
7781
- req: ExpectedTransactionControllerFindOverdueData;
7782
- res: {
8032
+ 204: void;
7783
8033
  /**
7784
- * Overdue transactions retrieved successfully
8034
+ * Invalid access token
7785
8035
  */
7786
- 200: ExpectedTransactionListResponseDto;
8036
+ 403: unknown;
7787
8037
  };
7788
8038
  };
7789
- };
7790
- '/api/v1/{region}/bean/expected-transactions/{id}': {
7791
8039
  get: {
7792
- req: ExpectedTransactionControllerFindOneData;
8040
+ req: UserControllerGetUserData;
7793
8041
  res: {
7794
8042
  /**
7795
- * Expected transaction retrieved successfully
7796
- */
7797
- 200: ExpectedTransactionResponseDto;
7798
- /**
7799
- * Expected transaction not found
8043
+ * User retrieved successfully
7800
8044
  */
7801
- 404: unknown;
8045
+ 200: UserResponseDto;
7802
8046
  };
7803
8047
  };
7804
- };
7805
- '/api/v1/{region}/bean/expected-transactions/{id}/skip': {
7806
8048
  post: {
7807
- req: ExpectedTransactionControllerSkipData;
8049
+ req: UserControllerSignupUserData;
7808
8050
  res: {
7809
8051
  /**
7810
- * Expected transaction skipped successfully
8052
+ * User created successfully
7811
8053
  */
7812
- 200: ExpectedTransactionResponseDto;
8054
+ 201: SignupResponseDto;
7813
8055
  /**
7814
- * Cannot skip - not in PENDING status
8056
+ * Invalid Turnstile token (when Turnstile is enabled)
7815
8057
  */
7816
8058
  400: unknown;
7817
8059
  /**
7818
- * Expected transaction not found
8060
+ * User signup is disabled
7819
8061
  */
7820
- 404: unknown;
8062
+ 403: unknown;
7821
8063
  };
7822
8064
  };
8065
+ };
8066
+ '/api/v1/users/{id}': {
7823
8067
  delete: {
7824
- req: ExpectedTransactionControllerUndoSkipData;
8068
+ req: UserControllerDeleteUserData;
7825
8069
  res: {
7826
8070
  /**
7827
- * Skip undone successfully
7828
- */
7829
- 200: ExpectedTransactionResponseDto;
7830
- /**
7831
- * Cannot undo - not in SKIPPED status
8071
+ * User deleted successfully
7832
8072
  */
7833
- 400: unknown;
8073
+ 204: void;
7834
8074
  /**
7835
- * Expected transaction not found
8075
+ * Cannot delete own account or insufficient permissions
7836
8076
  */
7837
- 404: unknown;
8077
+ 403: unknown;
7838
8078
  };
7839
8079
  };
7840
8080
  };
7841
- '/api/v1/{region}/bean/expected-transactions/{id}/match': {
7842
- post: {
7843
- req: ExpectedTransactionControllerConfirmMatchData;
8081
+ '/api/v1/users/{id}/info': {
8082
+ get: {
8083
+ req: UserControllerGetUserInfoData;
7844
8084
  res: {
7845
8085
  /**
7846
- * Match confirmed successfully
8086
+ * User info retrieved successfully
7847
8087
  */
7848
8088
  200: unknown;
7849
8089
  /**
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
8090
+ * Cannot access other user info without admin permission
7859
8091
  */
7860
- 409: unknown;
8092
+ 403: unknown;
7861
8093
  };
7862
8094
  };
7863
- delete: {
7864
- req: ExpectedTransactionControllerUnmatchData;
8095
+ };
8096
+ '/api/v1/users/setting': {
8097
+ put: {
8098
+ req: UserControllerUpdateUserSettingData;
7865
8099
  res: {
7866
8100
  /**
7867
- * Match removed successfully
8101
+ * Settings updated successfully
7868
8102
  */
7869
8103
  200: unknown;
7870
8104
  /**
7871
- * Cannot unmatch - not in COMPLETED status
7872
- */
7873
- 400: unknown;
7874
- /**
7875
- * Expected transaction not found
8105
+ * Insufficient permissions
7876
8106
  */
7877
- 404: unknown;
8107
+ 403: unknown;
7878
8108
  };
7879
8109
  };
7880
8110
  };
7881
- '/api/v1/{region}/bean/expected-transactions/{id}/enter': {
7882
- post: {
7883
- req: ExpectedTransactionControllerEnterNowData;
8111
+ '/api/v1/users/settings-by-page': {
8112
+ get: {
8113
+ req: UserControllerGetAllUserSettingsByPageData;
7884
8114
  res: {
7885
8115
  /**
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
8116
+ * Settings list retrieved successfully
7895
8117
  */
7896
- 404: unknown;
8118
+ 200: unknown;
7897
8119
  };
7898
8120
  };
7899
8121
  };
7900
- '/api/v1/{region}/bean/recurring/forecast': {
8122
+ '/api/v1/users/asset-liability-summary': {
7901
8123
  get: {
7902
- req: ForecastControllerGetForecastData;
7903
8124
  res: {
7904
8125
  /**
7905
- * Forecast retrieved successfully
8126
+ * Summary retrieved successfully
7906
8127
  */
7907
- 200: ForecastResponseDto;
8128
+ 200: unknown;
7908
8129
  };
7909
8130
  };
7910
8131
  };
7911
- '/api/v1/{region}/reporting/portfolio/trends': {
8132
+ '/api/v1/admin/properties': {
7912
8133
  get: {
7913
- req: ReportingControllerGetPortfolioTrendsData;
7914
8134
  res: {
7915
8135
  /**
7916
- * Trends retrieved successfully
8136
+ * Properties retrieved successfully
7917
8137
  */
7918
- 200: PortfolioTrendsResponseDto;
8138
+ 200: unknown;
7919
8139
  /**
7920
- * User not authenticated
8140
+ * Unauthorized
7921
8141
  */
7922
8142
  401: unknown;
8143
+ /**
8144
+ * Forbidden - insufficient permissions
8145
+ */
8146
+ 403: unknown;
7923
8147
  };
7924
8148
  };
7925
8149
  };
7926
- '/api/v1/{region}/reporting/cash-flow/trends': {
8150
+ '/api/v1/admin/properties/{key}': {
7927
8151
  get: {
7928
- req: ReportingControllerGetCashFlowTrendsData;
8152
+ req: PropertyControllerGetByKeyData;
7929
8153
  res: {
7930
8154
  /**
7931
- * Cash-flow trends retrieved successfully
8155
+ * Property retrieved successfully
7932
8156
  */
7933
- 200: CashFlowTrendsResponseDto;
8157
+ 200: unknown;
7934
8158
  /**
7935
- * User not authenticated
8159
+ * Unauthorized
7936
8160
  */
7937
8161
  401: unknown;
8162
+ /**
8163
+ * Forbidden - insufficient permissions
8164
+ */
8165
+ 403: unknown;
8166
+ /**
8167
+ * Property not found
8168
+ */
8169
+ 404: unknown;
7938
8170
  };
7939
8171
  };
7940
- };
7941
- '/api/v1/{region}/reporting/snapshots/generate': {
7942
- post: {
7943
- req: ReportingControllerGenerateSnapshotData;
8172
+ put: {
8173
+ req: PropertyControllerUpdateData;
7944
8174
  res: {
7945
8175
  /**
7946
- * Snapshot generated successfully
8176
+ * Property updated successfully
7947
8177
  */
7948
- 200: GenerateSnapshotResponse;
8178
+ 200: unknown;
7949
8179
  /**
7950
- * Invalid date format
8180
+ * Unauthorized
7951
8181
  */
7952
- 400: unknown;
8182
+ 401: unknown;
7953
8183
  /**
7954
- * User not authenticated
8184
+ * Forbidden - insufficient permissions
8185
+ */
8186
+ 403: unknown;
8187
+ };
8188
+ };
8189
+ delete: {
8190
+ req: PropertyControllerDeleteData;
8191
+ res: {
8192
+ /**
8193
+ * Property deleted successfully
8194
+ */
8195
+ 204: void;
8196
+ /**
8197
+ * Unauthorized
7955
8198
  */
7956
8199
  401: unknown;
8200
+ /**
8201
+ * Forbidden - insufficient permissions
8202
+ */
8203
+ 403: unknown;
8204
+ /**
8205
+ * Property not found
8206
+ */
8207
+ 404: unknown;
7957
8208
  };
7958
8209
  };
7959
8210
  };
7960
- '/api/v1/{region}/reporting/snapshots/backfill': {
8211
+ '/api/v1/{region}/bean/recurring-rules': {
7961
8212
  post: {
7962
- req: ReportingControllerBackfillSnapshotsData;
8213
+ req: RecurringRuleControllerCreateData;
7963
8214
  res: {
7964
8215
  /**
7965
- * Backfill completed successfully
8216
+ * Rule created successfully
7966
8217
  */
7967
- 200: BackfillSnapshotsResponse;
8218
+ 201: RecurringRuleResponseDto;
7968
8219
  /**
7969
- * Invalid date format or range
8220
+ * Invalid input data (e.g., autoCreate without accounts)
7970
8221
  */
7971
8222
  400: unknown;
7972
8223
  /**
7973
- * User not authenticated
8224
+ * Rule with same name already exists
7974
8225
  */
7975
- 401: unknown;
8226
+ 409: unknown;
8227
+ };
8228
+ };
8229
+ get: {
8230
+ req: RecurringRuleControllerFindAllData;
8231
+ res: {
7976
8232
  /**
7977
- * Backfill already in progress for this user
8233
+ * Rules retrieved successfully
7978
8234
  */
7979
- 409: unknown;
8235
+ 200: Array<RecurringRuleResponseDto>;
7980
8236
  };
7981
8237
  };
7982
8238
  };
7983
- '/api/v1/users': {
7984
- delete: {
7985
- req: UserControllerDeleteOwnUserData;
8239
+ '/api/v1/{region}/bean/recurring-rules/from-transaction/{transactionId}': {
8240
+ post: {
8241
+ req: RecurringRuleControllerCreateFromTransactionData;
7986
8242
  res: {
7987
8243
  /**
7988
- * User deleted successfully
8244
+ * Rule created successfully
7989
8245
  */
7990
- 204: void;
8246
+ 201: RecurringRuleResponseDto;
7991
8247
  /**
7992
- * Invalid access token
8248
+ * Transaction not found
7993
8249
  */
7994
- 403: unknown;
8250
+ 404: ApiProblemResponseDto;
8251
+ /**
8252
+ * Rule with same name already exists or transaction already linked
8253
+ */
8254
+ 409: ApiProblemResponseDto;
7995
8255
  };
7996
8256
  };
8257
+ };
8258
+ '/api/v1/{region}/bean/recurring-rules/{id}': {
7997
8259
  get: {
7998
- req: UserControllerGetUserData;
8260
+ req: RecurringRuleControllerFindOneData;
7999
8261
  res: {
8000
8262
  /**
8001
- * User retrieved successfully
8263
+ * Rule retrieved successfully
8002
8264
  */
8003
- 200: UserResponseDto;
8265
+ 200: RecurringRuleResponseDto;
8266
+ /**
8267
+ * Rule not found
8268
+ */
8269
+ 404: unknown;
8004
8270
  };
8005
8271
  };
8006
- post: {
8007
- req: UserControllerSignupUserData;
8272
+ patch: {
8273
+ req: RecurringRuleControllerUpdateData;
8008
8274
  res: {
8009
8275
  /**
8010
- * User created successfully
8276
+ * Rule updated successfully
8011
8277
  */
8012
- 201: SignupResponseDto;
8278
+ 200: RecurringRuleResponseDto;
8013
8279
  /**
8014
- * Invalid Turnstile token (when Turnstile is enabled)
8280
+ * Invalid input data
8015
8281
  */
8016
8282
  400: unknown;
8017
8283
  /**
8018
- * User signup is disabled
8284
+ * Rule not found
8019
8285
  */
8020
- 403: unknown;
8286
+ 404: unknown;
8021
8287
  };
8022
8288
  };
8023
- };
8024
- '/api/v1/users/{id}': {
8025
8289
  delete: {
8026
- req: UserControllerDeleteUserData;
8290
+ req: RecurringRuleControllerDeleteData;
8027
8291
  res: {
8028
8292
  /**
8029
- * User deleted successfully
8293
+ * Rule deleted successfully
8030
8294
  */
8031
8295
  204: void;
8032
8296
  /**
8033
- * Cannot delete own account or insufficient permissions
8297
+ * Rule not found
8034
8298
  */
8035
- 403: unknown;
8299
+ 404: unknown;
8036
8300
  };
8037
8301
  };
8038
8302
  };
8039
- '/api/v1/users/{id}/info': {
8303
+ '/api/v1/{region}/bean/recurring-rules/{id}/stats': {
8040
8304
  get: {
8041
- req: UserControllerGetUserInfoData;
8305
+ req: RecurringRuleControllerGetWithStatsData;
8042
8306
  res: {
8043
8307
  /**
8044
- * User info retrieved successfully
8308
+ * Rule with stats retrieved successfully
8045
8309
  */
8046
- 200: unknown;
8310
+ 200: RecurringRuleWithStatsResponseDto;
8047
8311
  /**
8048
- * Cannot access other user info without admin permission
8312
+ * Rule not found
8049
8313
  */
8050
- 403: unknown;
8314
+ 404: unknown;
8051
8315
  };
8052
8316
  };
8053
8317
  };
8054
- '/api/v1/users/setting': {
8055
- put: {
8056
- req: UserControllerUpdateUserSettingData;
8318
+ '/api/v1/{region}/bean/expected-transactions': {
8319
+ get: {
8320
+ req: ExpectedTransactionControllerFindAllData;
8057
8321
  res: {
8058
8322
  /**
8059
- * Settings updated successfully
8060
- */
8061
- 200: unknown;
8062
- /**
8063
- * Insufficient permissions
8323
+ * Expected transactions retrieved successfully
8064
8324
  */
8065
- 403: unknown;
8325
+ 200: ExpectedTransactionListResponseDto;
8066
8326
  };
8067
8327
  };
8068
8328
  };
8069
- '/api/v1/users/settings-by-page': {
8329
+ '/api/v1/{region}/bean/expected-transactions/overdue': {
8070
8330
  get: {
8071
- req: UserControllerGetAllUserSettingsByPageData;
8331
+ req: ExpectedTransactionControllerFindOverdueData;
8072
8332
  res: {
8073
8333
  /**
8074
- * Settings list retrieved successfully
8334
+ * Overdue transactions retrieved successfully
8075
8335
  */
8076
- 200: unknown;
8336
+ 200: ExpectedTransactionListResponseDto;
8077
8337
  };
8078
8338
  };
8079
8339
  };
8080
- '/api/v1/users/asset-liability-summary': {
8340
+ '/api/v1/{region}/bean/expected-transactions/{id}': {
8081
8341
  get: {
8342
+ req: ExpectedTransactionControllerFindOneData;
8082
8343
  res: {
8083
8344
  /**
8084
- * Summary retrieved successfully
8345
+ * Expected transaction retrieved successfully
8085
8346
  */
8086
- 200: unknown;
8347
+ 200: ExpectedTransactionResponseDto;
8348
+ /**
8349
+ * Expected transaction not found
8350
+ */
8351
+ 404: unknown;
8087
8352
  };
8088
8353
  };
8089
8354
  };
8090
- '/api/v1/admin/properties': {
8091
- get: {
8355
+ '/api/v1/{region}/bean/expected-transactions/{id}/skip': {
8356
+ post: {
8357
+ req: ExpectedTransactionControllerSkipData;
8092
8358
  res: {
8093
8359
  /**
8094
- * Properties retrieved successfully
8360
+ * Expected transaction skipped successfully
8095
8361
  */
8096
- 200: unknown;
8362
+ 200: ExpectedTransactionResponseDto;
8097
8363
  /**
8098
- * Unauthorized
8364
+ * Cannot skip - not in PENDING status
8099
8365
  */
8100
- 401: unknown;
8366
+ 400: unknown;
8101
8367
  /**
8102
- * Forbidden - insufficient permissions
8368
+ * Expected transaction not found
8103
8369
  */
8104
- 403: unknown;
8370
+ 404: unknown;
8105
8371
  };
8106
8372
  };
8107
- };
8108
- '/api/v1/admin/properties/{key}': {
8109
- get: {
8110
- req: PropertyControllerGetByKeyData;
8373
+ delete: {
8374
+ req: ExpectedTransactionControllerUndoSkipData;
8111
8375
  res: {
8112
8376
  /**
8113
- * Property retrieved successfully
8114
- */
8115
- 200: unknown;
8116
- /**
8117
- * Unauthorized
8377
+ * Skip undone successfully
8118
8378
  */
8119
- 401: unknown;
8379
+ 204: void;
8120
8380
  /**
8121
- * Forbidden - insufficient permissions
8381
+ * Cannot undo - not in SKIPPED status
8122
8382
  */
8123
- 403: unknown;
8383
+ 400: unknown;
8124
8384
  /**
8125
- * Property not found
8385
+ * Expected transaction not found
8126
8386
  */
8127
8387
  404: unknown;
8128
8388
  };
8129
8389
  };
8130
- put: {
8131
- req: PropertyControllerUpdateData;
8390
+ };
8391
+ '/api/v1/{region}/bean/expected-transactions/{id}/match': {
8392
+ post: {
8393
+ req: ExpectedTransactionControllerConfirmMatchData;
8132
8394
  res: {
8133
8395
  /**
8134
- * Property updated successfully
8396
+ * Match confirmed successfully
8135
8397
  */
8136
8398
  200: unknown;
8137
8399
  /**
8138
- * Unauthorized
8400
+ * Cannot match - not in PENDING status
8139
8401
  */
8140
- 401: unknown;
8402
+ 400: unknown;
8141
8403
  /**
8142
- * Forbidden - insufficient permissions
8404
+ * Expected or actual transaction not found
8143
8405
  */
8144
- 403: unknown;
8406
+ 404: unknown;
8407
+ /**
8408
+ * Actual transaction already matched to another rule
8409
+ */
8410
+ 409: unknown;
8145
8411
  };
8146
8412
  };
8147
8413
  delete: {
8148
- req: PropertyControllerDeleteData;
8414
+ req: ExpectedTransactionControllerUnmatchData;
8149
8415
  res: {
8150
8416
  /**
8151
- * Property deleted successfully
8417
+ * Match removed successfully
8152
8418
  */
8153
8419
  204: void;
8154
8420
  /**
8155
- * Unauthorized
8421
+ * Cannot unmatch - not in COMPLETED status
8156
8422
  */
8157
- 401: unknown;
8423
+ 400: unknown;
8158
8424
  /**
8159
- * Forbidden - insufficient permissions
8425
+ * Expected transaction not found
8160
8426
  */
8161
- 403: unknown;
8427
+ 404: unknown;
8428
+ };
8429
+ };
8430
+ };
8431
+ '/api/v1/{region}/bean/expected-transactions/{id}/enter': {
8432
+ post: {
8433
+ req: ExpectedTransactionControllerEnterNowData;
8434
+ res: {
8162
8435
  /**
8163
- * Property not found
8436
+ * Transaction created successfully
8437
+ */
8438
+ 201: unknown;
8439
+ /**
8440
+ * Cannot enter - not in PENDING status or missing accounts
8441
+ */
8442
+ 400: unknown;
8443
+ /**
8444
+ * Expected transaction or accounts not found
8164
8445
  */
8165
8446
  404: unknown;
8166
8447
  };
8167
8448
  };
8168
8449
  };
8450
+ '/api/v1/{region}/bean/recurring/forecast': {
8451
+ get: {
8452
+ req: ForecastControllerGetForecastData;
8453
+ res: {
8454
+ /**
8455
+ * Forecast retrieved successfully
8456
+ */
8457
+ 200: ForecastResponseDto;
8458
+ };
8459
+ };
8460
+ };
8169
8461
  '/api/v1/{region}/bean/transaction-rules': {
8170
8462
  post: {
8171
8463
  req: TransactionRuleControllerCreateData;
@@ -8563,7 +8855,10 @@ type $OpenApiTs = {
8563
8855
  '/api/v1/{region}/bean/export/beancount': {
8564
8856
  get: {
8565
8857
  res: {
8566
- 200: unknown;
8858
+ /**
8859
+ * ZIP archive (application/zip) streamed as an attachment
8860
+ */
8861
+ 200: Blob | File;
8567
8862
  };
8568
8863
  };
8569
8864
  };
@@ -8944,6 +9239,17 @@ type $OpenApiTs = {
8944
9239
  };
8945
9240
  };
8946
9241
  };
9242
+ '/api/v1/bean/platforms/{id}/standards': {
9243
+ get: {
9244
+ req: PlatformControllerGetPlatformStandardsData;
9245
+ res: {
9246
+ /**
9247
+ * Resolved region plus the merged account-standard catalog of that region (groupable by productCategory client-side)
9248
+ */
9249
+ 200: PlatformStandardsResponseDto;
9250
+ };
9251
+ };
9252
+ };
8947
9253
  '/api/v1/bean/platforms/{id}': {
8948
9254
  put: {
8949
9255
  req: PlatformControllerUpdateData;
@@ -9088,10 +9394,48 @@ type $OpenApiTs = {
9088
9394
  };
9089
9395
  };
9090
9396
  };
9397
+ '/api/v1/{region}/community/parser-contributions': {
9398
+ post: {
9399
+ req: ParserContributionControllerCreateData;
9400
+ res: {
9401
+ /**
9402
+ * Issue created by the bot
9403
+ */
9404
+ 201: ParserContributionRelayResponseDto;
9405
+ /**
9406
+ * Unauthorized
9407
+ */
9408
+ 401: ApiProblemResponseDto;
9409
+ /**
9410
+ * Validation failed (institution slug, empty samples, row/cell size limits)
9411
+ */
9412
+ 422: ApiProblemResponseDto;
9413
+ /**
9414
+ * Rate limited (5 submissions per user per hour)
9415
+ */
9416
+ 429: ApiProblemResponseDto;
9417
+ /**
9418
+ * Relay not configured on this deployment — clients fall back to the clipboard flow
9419
+ */
9420
+ 501: ApiProblemResponseDto;
9421
+ /**
9422
+ * GitHub bot failure (upstream), safe to retry
9423
+ */
9424
+ 502: ApiProblemResponseDto;
9425
+ };
9426
+ };
9427
+ };
9091
9428
  '/api/v1/cache/flush': {
9092
9429
  post: {
9093
9430
  res: {
9094
- 201: unknown;
9431
+ /**
9432
+ * Cache flushed successfully
9433
+ */
9434
+ 200: unknown;
9435
+ /**
9436
+ * Admin access required
9437
+ */
9438
+ 403: ApiProblemResponseDto;
9095
9439
  };
9096
9440
  };
9097
9441
  };
@@ -9367,10 +9711,11 @@ declare class BeanTransactionsService {
9367
9711
  * @param data.offset Number of items to skip (default: 0)
9368
9712
  * @param data.dateFrom Filter by start date (inclusive), format: YYYY-MM-DD
9369
9713
  * @param data.dateTo Filter by end date (inclusive), format: YYYY-MM-DD
9370
- * @param data.status Filter by transaction status
9714
+ * @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
9715
  * @param data.search Search in narration and payee fields (max 200 chars)
9372
9716
  * @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
9717
+ * @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).
9718
+ * @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
9719
  * @returns TransactionListResponseDto Transaction list
9375
9720
  * @throws ApiError
9376
9721
  */
@@ -9676,4 +10021,4 @@ type OpenAPIConfig = {
9676
10021
  };
9677
10022
  declare const OpenAPI: OpenAPIConfig;
9678
10023
 
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 };
10024
+ 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 };