@firela/api-types 0.0.0-canary.d9762ea3 → 0.0.0-canary.da82874e

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.mts CHANGED
@@ -50,6 +50,10 @@ type CreateAccountDto = {
50
50
  * Icon identifier (overrides template)
51
51
  */
52
52
  icon?: string;
53
+ /**
54
+ * User-set display name override (omit/null = keep the derived name)
55
+ */
56
+ displayName?: string | null;
53
57
  /**
54
58
  * Open directive metadata (NOT an opening-balance amount — use the opening-balance endpoint)
55
59
  */
@@ -111,7 +115,7 @@ type AccountResponseDto = {
111
115
  */
112
116
  isCustom: boolean;
113
117
  /**
114
- * Localized display name (ADR-0114, read-time projection)
118
+ * Display name with precedence: user-set name (#762) > ADR-0114 localized name > path leaf (read-time projection)
115
119
  */
116
120
  displayName?: string;
117
121
  /**
@@ -127,9 +131,7 @@ type AccountResponseDto = {
127
131
  /**
128
132
  * Platform ID (null if unbound)
129
133
  */
130
- platformId?: {
131
- [key: string]: unknown;
132
- };
134
+ platformId?: string;
133
135
  /**
134
136
  * Platform details (populated if platformId is set)
135
137
  */
@@ -239,15 +241,27 @@ type AccountStandardResponseDto = {
239
241
  */
240
242
  type: 'Assets' | 'Liabilities' | 'Income' | 'Expenses' | 'Equity';
241
243
  /**
242
- * Short localized display name
244
+ * Short display name. Universal rows project to the request locale (Accept-Language); regional rows keep the authored native name — mixed-language by design (ADR-0131 class P vs class A).
243
245
  */
244
246
  name?: string;
245
247
  /**
246
- * Account description (stable semantics only)
248
+ * Authored market-language alternative names delivered verbatim (not localized copy, not xlf-managed, not locale-projected). Flat string[] per ADR-0129 D1; ADR-0131 class A.
249
+ */
250
+ aliases?: Array<string>;
251
+ /**
252
+ * Locale-projected search synonyms (e.g. the zh bank-card / debit-card everyday terms for the checking account). Pure-locale projection — absent when the locale has no seeded synonyms; English fallback rides the authored aliases field. Search-only vocabulary, not the NLP routing corpus (#698, ADR-0131 fourth-class adjudication).
253
+ */
254
+ searchTerms?: Array<string>;
255
+ /**
256
+ * Product denomination as a 3-letter ISO 4217 code, authored market data delivered verbatim (not localized, not xlf-managed). ADR-0131 class A. Absent = single-currency not asserted — consumers fall back to their own region currency (#714).
257
+ */
258
+ currency?: string;
259
+ /**
260
+ * Account description (stable semantics only). Mixed-language contract: universal rows project to the request locale via the accountDesc xlf axis with an en fallback (ADR-0131 class P, ADR-0132; unseeded locales falling back to English are expected); regional rows deliver the authored market language (ADR-0131 class A, verbatim, never xlf-managed).
247
261
  */
248
262
  description: string;
249
263
  /**
250
- * Account tags for categorization
264
+ * Account tags for categorization — structured metadata delivered verbatim (not localized, not xlf-managed). ADR-0131 class A.
251
265
  */
252
266
  tags: Array<string>;
253
267
  /**
@@ -301,10 +315,17 @@ type TemplateMetadataResponseDto = {
301
315
  type RegionConfigDto = {
302
316
  currency: string;
303
317
  dateFormat: string;
318
+ /**
319
+ * Region-qualified BCP-47 tag whose region subtag equals the region's own ISO 3166-1 code (e.g., ja-JP, zh-CN, zh-HK)
320
+ */
304
321
  locale: string;
305
322
  };
306
323
  type RegionInfoDto = {
307
324
  code: string;
325
+ /**
326
+ * Whether the region is open (has a ready regional account template). Not-yet-open regions still return identity metadata and degrade to the universal-only catalog.
327
+ */
328
+ open: boolean;
308
329
  displayName: string;
309
330
  parent?: string;
310
331
  chain: Array<string>;
@@ -457,7 +478,7 @@ type PostingResponseDto = {
457
478
  */
458
479
  account: string;
459
480
  /**
460
- * Amount as decimal string. Typed optional but always present in responses: interpolation fills any MISSING posting before it is persisted or returned.
481
+ * Amount as decimal string. Typed optional but always present in responses: interpolation fills any MISSING posting before it is persisted or returned. Carries the raw Beancount sign (credit-normal accounts such as Income post negative — the accounting truth, ADR-0126); renderers must not infer economic semantics from this sign.
461
482
  */
462
483
  units?: string;
463
484
  /**
@@ -669,7 +690,7 @@ type PostingDetailDto = {
669
690
  */
670
691
  account: string;
671
692
  /**
672
- * Amount as decimal string. Typed optional but always present in responses: interpolation fills any MISSING posting before it is persisted or returned.
693
+ * Amount as decimal string. Typed optional but always present in responses: interpolation fills any MISSING posting before it is persisted or returned. Carries the raw Beancount sign (credit-normal accounts such as Income post negative — the accounting truth, ADR-0126); renderers must not infer economic semantics from this sign.
673
694
  */
674
695
  units?: string;
675
696
  /**
@@ -799,6 +820,94 @@ type flag2 = 'CLEARED' | 'PENDING' | 'PADDING' | 'SUMMARIZE' | 'TRANSFER' | 'CON
799
820
  * Transaction status
800
821
  */
801
822
  type status2 = 'ACTIVE' | 'VOIDED' | 'SUPERSEDED';
823
+ type TransactionListItemDto = {
824
+ /**
825
+ * Transaction ID
826
+ */
827
+ id: string;
828
+ /**
829
+ * Transaction date
830
+ */
831
+ date: string;
832
+ /**
833
+ * Transaction flag
834
+ */
835
+ flag?: 'CLEARED' | 'PENDING' | 'PADDING' | 'SUMMARIZE' | 'TRANSFER' | 'CONVERSIONS';
836
+ /**
837
+ * Custom flag (if not using standard flags)
838
+ */
839
+ customFlag?: string;
840
+ /**
841
+ * Payee name
842
+ */
843
+ payee?: string;
844
+ /**
845
+ * Transaction narration
846
+ */
847
+ narration: string;
848
+ /**
849
+ * Transaction tags
850
+ */
851
+ tags: Array<string>;
852
+ /**
853
+ * Transaction links
854
+ */
855
+ links: Array<string>;
856
+ /**
857
+ * Transaction metadata
858
+ */
859
+ meta?: {
860
+ [key: string]: unknown;
861
+ };
862
+ /**
863
+ * Transaction status
864
+ */
865
+ status: 'ACTIVE' | 'VOIDED' | 'SUPERSEDED';
866
+ /**
867
+ * Source type (free-form string from transaction metadata, e.g. import, api)
868
+ */
869
+ sourceType?: string;
870
+ /**
871
+ * Source platform (e.g., alipay, wechat)
872
+ */
873
+ sourcePlatform?: string;
874
+ /**
875
+ * Transaction postings
876
+ */
877
+ postings: Array<PostingDetailDto>;
878
+ /**
879
+ * Created at timestamp
880
+ */
881
+ createdAt: string;
882
+ /**
883
+ * Voided at timestamp (if voided)
884
+ */
885
+ voidedAt?: string;
886
+ /**
887
+ * User ID who voided this transaction
888
+ */
889
+ voidedBy?: string;
890
+ /**
891
+ * Correction reason (if voided or superseded)
892
+ */
893
+ correctionReason?: string;
894
+ /**
895
+ * ID of the transaction that supersedes this one (set when status=SUPERSEDED)
896
+ */
897
+ supersededBy?: string;
898
+ /**
899
+ * ID of the transaction this one corrected/replaced (back-link on the replacement)
900
+ */
901
+ originalTxn?: string;
902
+ /**
903
+ * Row amount under the request viewpoint (ADR-0126). Category viewpoint (category + flow): per-leg sign-normalized sum over the category account set (Income-root legs negated, Expenses-root identity) — positive under normal booking but NOT clamped (explicit negative expense legs and net-flip refund months stay negative). No viewpoint (plain list / search, no accountId): wallet money-flow net = raw-sign sum over cost-less Assets/Liabilities legs (income positive, expenses negative, transfers net ~0); color cue is the wallet sign (net < 0 = wealth-decreasing). Status-orthogonal: audit views match too (ADR-0128 amount-as-matching-key). Omitted under the account viewpoint (incl. dual) and for rows with no wallet leg.
904
+ */
905
+ viewpointAmount?: string;
906
+ /**
907
+ * Currency of viewpointAmount. A row spanning multiple currencies takes the largest-magnitude currency group (known simplification, ADR-0126).
908
+ */
909
+ viewpointCurrency?: string;
910
+ };
802
911
  type BalanceByCurrencyDto = {
803
912
  /**
804
913
  * ISO 4217 currency code
@@ -825,7 +934,7 @@ type ExchangeRateWarningDto = {
825
934
  };
826
935
  type TransactionListSummaryDto = {
827
936
  /**
828
- * Partial converted total in base currency (rated currencies only, raw Beancount sign). When warnings is non-empty this excludes currencies missing an FX rate; may be "0.00" if ALL non-base currencies lack a rate. Converted at the dateTo (or current) available rate.
937
+ * Partial converted total in base currency (rated currencies only). Sign by viewpoint (ADR-0126): account viewpoint keeps the raw Beancount sign (income negative); category viewpoint is per-leg sign-normalized (Income legs negated, Expenses legs identity — positive under normal booking, not clamped). When warnings is non-empty this excludes currencies missing an FX rate; may be "0.00" if ALL non-base currencies lack a rate. Converted at the dateTo (or current) available rate.
829
938
  */
830
939
  totalAmount: string;
831
940
  /**
@@ -841,11 +950,29 @@ type TransactionListSummaryDto = {
841
950
  */
842
951
  warnings?: Array<ExchangeRateWarningDto>;
843
952
  };
953
+ type TransactionListViewpointDto = {
954
+ /**
955
+ * Viewpoint type (only category drill-down carries a viewpoint today)
956
+ */
957
+ type: 'category';
958
+ /**
959
+ * Flow root the category account set is restricted to
960
+ */
961
+ flow: 'income' | 'expense';
962
+ };
963
+ /**
964
+ * Viewpoint type (only category drill-down carries a viewpoint today)
965
+ */
966
+ type type2 = 'category';
967
+ /**
968
+ * Flow root the category account set is restricted to
969
+ */
970
+ type flow = 'income' | 'expense';
844
971
  type TransactionListResponseDto = {
845
972
  /**
846
973
  * List of transactions
847
974
  */
848
- data: Array<TransactionDetailDto>;
975
+ data: Array<TransactionListItemDto>;
849
976
  /**
850
977
  * Total count of matching transactions
851
978
  */
@@ -862,6 +989,10 @@ type TransactionListResponseDto = {
862
989
  * Amount summary for the full filtered set (#514). Present only when the request has a single account OR category viewpoint; omitted for search-only / plain-list / dual-perspective requests.
863
990
  */
864
991
  summary?: TransactionListSummaryDto;
992
+ /**
993
+ * Viewpoint metadata (ADR-0126). Present only for a single category filter (category + flow, no accountId); dual-perspective requests are viewpoint-less (raw signs, no viewpointAmount).
994
+ */
995
+ viewpoint?: TransactionListViewpointDto;
865
996
  };
866
997
  type TagSuggestionDto = {
867
998
  /**
@@ -1054,7 +1185,7 @@ type ReviewSummaryDto = {
1054
1185
  /**
1055
1186
  * Review type
1056
1187
  */
1057
- type type2 = 'DUPLICATE' | 'RULE_MATCH' | 'PAYEE_MATCH' | 'ACCOUNT_VALIDATION' | 'PIPELINE_ERROR';
1188
+ type type3 = 'DUPLICATE' | 'RULE_MATCH' | 'PAYEE_MATCH' | 'ACCOUNT_VALIDATION' | 'PIPELINE_ERROR';
1058
1189
  /**
1059
1190
  * Review status
1060
1191
  */
@@ -1418,7 +1549,7 @@ type UpdatePayeeDto = {
1418
1549
  */
1419
1550
  customTags?: Array<string>;
1420
1551
  /**
1421
- * Metadata for extended information (location, notes, contact info, etc.). Will merge with existing metadata.
1552
+ * Metadata for extended information (location, notes, contact info, etc.)
1422
1553
  */
1423
1554
  meta?: {
1424
1555
  [key: string]: unknown;
@@ -1708,451 +1839,497 @@ type UpdateCommodityDto = {
1708
1839
  [key: string]: unknown;
1709
1840
  };
1710
1841
  };
1711
- type CreateBeanPriceDto = {
1842
+ type CurrencyBalanceDto = {
1712
1843
  /**
1713
- * Currency being priced (e.g., USD, AAPL, BTC)
1844
+ * ISO 4217 currency code
1714
1845
  */
1715
1846
  currency: string;
1716
1847
  /**
1717
- * Quote currency (pricing currency, e.g., CNY, EUR)
1848
+ * Balance amount
1718
1849
  */
1719
- quoteCurrency: string;
1850
+ balance: string;
1851
+ };
1852
+ type TimeSeriesPointDto = {
1720
1853
  /**
1721
- * Price amount (MUST be >= 0 per Beancount spec, supports up to 15 decimal places). Zero allowed for conversion entries, negative strictly prohibited.
1854
+ * Date in YYYY-MM-DD format
1722
1855
  */
1723
- amount: number;
1856
+ date: string;
1724
1857
  /**
1725
- * Price date (ISO 8601 format)
1858
+ * Value at this date (in base currency)
1726
1859
  */
1727
- date: string;
1860
+ value: string;
1728
1861
  /**
1729
- * Metadata (validated by Zod schema, max field lengths enforced)
1862
+ * Change from previous point
1730
1863
  */
1731
- metadata?: {
1732
- [key: string]: unknown;
1733
- };
1734
- };
1735
- type PriceResponseDto = {
1864
+ change?: string;
1736
1865
  /**
1737
- * Unique identifier
1866
+ * Total assets at this date (in base currency)
1738
1867
  */
1739
- id: string;
1868
+ assets?: string;
1740
1869
  /**
1741
- * User ID (owner of the price)
1870
+ * Total liabilities at this date (in base currency)
1742
1871
  */
1743
- userId: string;
1872
+ liabilities?: string;
1744
1873
  /**
1745
- * Currency being priced (e.g., USD, AAPL, BTC)
1874
+ * Multi-currency breakdown for this point
1746
1875
  */
1747
- currency: string;
1876
+ byCurrency?: Array<CurrencyBalanceDto>;
1877
+ };
1878
+ type TrendSummaryDto = {
1748
1879
  /**
1749
- * Quote currency (pricing currency, e.g., USD, CNY)
1880
+ * Value at start of period
1750
1881
  */
1751
- quoteCurrency: string;
1882
+ startValue: string;
1752
1883
  /**
1753
- * Price amount (corresponds to Beancount Amount.number). Supports up to 15 decimal places.
1884
+ * Value at end of period
1754
1885
  */
1755
- amount: number;
1886
+ endValue: string;
1756
1887
  /**
1757
- * Price date (ISO 8601 format). Represents the date this price was valid.
1888
+ * Total change over period
1758
1889
  */
1759
- date: string;
1890
+ totalChange: string;
1760
1891
  /**
1761
- * Metadata (corresponds to Beancount meta field). Contains source, confidence, note, etc.
1892
+ * Total change percentage
1762
1893
  */
1763
- meta: {
1764
- [key: string]: unknown;
1765
- };
1894
+ totalChangePercentage: string;
1895
+ };
1896
+ type MultiCurrencyPointDto = {
1766
1897
  /**
1767
- * Creation timestamp
1898
+ * Date in YYYY-MM-DD format
1768
1899
  */
1769
- createdAt: string;
1900
+ date: string;
1770
1901
  /**
1771
- * Last update timestamp
1902
+ * Balances by currency
1772
1903
  */
1773
- updatedAt: string;
1904
+ byCurrency: Array<CurrencyBalanceDto>;
1774
1905
  };
1775
- type PriceListResponseDto = {
1906
+ type PortfolioTrendsResponseDto = {
1776
1907
  /**
1777
- * List of prices
1908
+ * Time series data points
1778
1909
  */
1779
- items: Array<PriceResponseDto>;
1910
+ series: Array<TimeSeriesPointDto>;
1780
1911
  /**
1781
- * Total number of prices
1912
+ * Period summary
1782
1913
  */
1783
- total: number;
1784
- };
1785
- type UpdateBeanPriceDto = {
1914
+ summary: TrendSummaryDto;
1786
1915
  /**
1787
- * Currency being priced
1916
+ * Period requested
1788
1917
  */
1789
- currency?: string;
1918
+ period: string;
1790
1919
  /**
1791
- * Quote currency (pricing currency)
1920
+ * Data granularity
1792
1921
  */
1793
- quoteCurrency?: string;
1922
+ granularity: string;
1794
1923
  /**
1795
- * Price amount (MUST be >= 0 per Beancount spec)
1924
+ * Base currency for converted values
1796
1925
  */
1797
- amount?: number;
1926
+ currency: string;
1798
1927
  /**
1799
- * Price date (ISO 8601 format)
1928
+ * Multi-currency time series (each point has currency breakdown)
1800
1929
  */
1801
- date?: string;
1930
+ byCurrency?: Array<MultiCurrencyPointDto>;
1802
1931
  /**
1803
- * Metadata
1932
+ * Exchange rate warnings
1804
1933
  */
1805
- metadata?: {
1806
- [key: string]: unknown;
1807
- };
1934
+ warnings?: Array<ExchangeRateWarningDto>;
1808
1935
  };
1809
- type CreateRecurringRuleDto = {
1936
+ type CashFlowPointDto = {
1810
1937
  /**
1811
- * Rule name (unique per user)
1938
+ * Month key (YYYY-MM)
1812
1939
  */
1813
- name: string;
1940
+ month: string;
1814
1941
  /**
1815
- * Icon emoji
1942
+ * Income in base currency (absolute, converted)
1816
1943
  */
1817
- icon?: string;
1944
+ income: string;
1818
1945
  /**
1819
- * Recurring frequency
1946
+ * Expense in base currency (absolute, converted)
1820
1947
  */
1821
- frequency: 'WEEKLY' | 'BIWEEKLY' | 'MONTHLY' | 'BIMONTHLY' | 'QUARTERLY' | 'YEARLY' | 'CUSTOM';
1948
+ expense: string;
1822
1949
  /**
1823
- * Expected amount (positive number)
1950
+ * netSavings = income − expense (savings positive)
1824
1951
  */
1825
- expectedAmount: number;
1952
+ netSavings: string;
1953
+ };
1954
+ type CashFlowTrendSummaryDto = {
1826
1955
  /**
1827
- * Expected day of month (1-31)
1956
+ * Total income across the period
1828
1957
  */
1829
- expectedDay?: number;
1958
+ totalIncome: string;
1830
1959
  /**
1831
- * Custom interval in days (required for CUSTOM frequency)
1960
+ * Total expense across the period
1832
1961
  */
1833
- customIntervalDays?: number;
1962
+ totalExpense: string;
1834
1963
  /**
1835
- * Currency code
1964
+ * income − expense across the period
1836
1965
  */
1837
- currency: string;
1966
+ totalNetSavings: string;
1838
1967
  /**
1839
- * Payee matching pattern (supports wildcards)
1968
+ * totalNetSavings divided by the window length (N months, incl. zero-filled)
1840
1969
  */
1841
- matchPayeePattern?: string;
1970
+ averageMonthlyNetSavings: string;
1971
+ };
1972
+ type CashFlowTrendsResponseDto = {
1842
1973
  /**
1843
- * Amount tolerance percentage (0-1)
1974
+ * Monthly cash-flow series (fixed N-month window, zero-filled)
1844
1975
  */
1845
- matchAmountTolerance: number;
1976
+ series: Array<CashFlowPointDto>;
1846
1977
  /**
1847
- * Default expense account for auto-create
1978
+ * Period totals
1848
1979
  */
1849
- defaultExpenseAccount?: string;
1980
+ summary: CashFlowTrendSummaryDto;
1850
1981
  /**
1851
- * Default payment account for auto-create
1982
+ * Period requested
1852
1983
  */
1853
- defaultPaymentAccount?: string;
1984
+ period: string;
1854
1985
  /**
1855
- * Default payee for auto-create
1986
+ * Data granularity (v1 returns month buckets)
1856
1987
  */
1857
- defaultPayee?: string;
1988
+ granularity: string;
1858
1989
  /**
1859
- * Auto-create transaction when expected date arrives
1990
+ * Base currency for converted values
1860
1991
  */
1861
- autoCreate: boolean;
1992
+ currency: string;
1862
1993
  /**
1863
- * Rule start date (ISO format)
1994
+ * Exchange rate warnings (e.g. missing rate for a currency)
1864
1995
  */
1865
- startDate?: string;
1996
+ warnings?: Array<ExchangeRateWarningDto>;
1997
+ };
1998
+ type GenerateSnapshotBody = unknown;
1999
+ type GenerateSnapshotResponse = unknown;
2000
+ type BackfillSnapshotsBody = unknown;
2001
+ type BackfillSnapshotsResponse = unknown;
2002
+ type CreateBeanPriceDto = {
1866
2003
  /**
1867
- * Rule end date (ISO format)
2004
+ * Currency being priced (e.g., USD, AAPL, BTC)
1868
2005
  */
1869
- endDate?: string;
1870
- };
1871
- /**
1872
- * Recurring frequency
1873
- */
1874
- type frequency = 'WEEKLY' | 'BIWEEKLY' | 'MONTHLY' | 'BIMONTHLY' | 'QUARTERLY' | 'YEARLY' | 'CUSTOM';
1875
- type RecurringRuleResponseDto = {
2006
+ currency: string;
1876
2007
  /**
1877
- * Rule ID
2008
+ * Quote currency (pricing currency, e.g., CNY, EUR)
1878
2009
  */
1879
- id: string;
2010
+ quoteCurrency: string;
1880
2011
  /**
1881
- * User ID
2012
+ * Price amount (MUST be >= 0 per Beancount spec, supports up to 15 decimal places). Zero allowed for conversion entries, negative strictly prohibited.
1882
2013
  */
1883
- userId: string;
2014
+ amount: number;
1884
2015
  /**
1885
- * Rule name
2016
+ * Price date (ISO 8601 format)
1886
2017
  */
1887
- name: string;
2018
+ date: string;
1888
2019
  /**
1889
- * Icon emoji
2020
+ * Metadata (validated by Zod schema, max field lengths enforced)
1890
2021
  */
1891
- icon?: {
2022
+ metadata?: {
1892
2023
  [key: string]: unknown;
1893
2024
  };
2025
+ };
2026
+ type PriceResponseDto = {
1894
2027
  /**
1895
- * Recurring frequency
2028
+ * Unique identifier
1896
2029
  */
1897
- frequency: string;
2030
+ id: string;
1898
2031
  /**
1899
- * Expected amount
2032
+ * User ID (owner of the price)
1900
2033
  */
1901
- expectedAmount: number;
2034
+ userId: string;
1902
2035
  /**
1903
- * Expected day of month
2036
+ * Currency being priced (e.g., USD, AAPL, BTC)
1904
2037
  */
1905
- expectedDay?: {
1906
- [key: string]: unknown;
1907
- };
2038
+ currency: string;
1908
2039
  /**
1909
- * Custom interval in days
2040
+ * Quote currency (pricing currency, e.g., USD, CNY)
1910
2041
  */
1911
- customIntervalDays?: {
1912
- [key: string]: unknown;
1913
- };
2042
+ quoteCurrency: string;
1914
2043
  /**
1915
- * Currency code
2044
+ * Price amount (corresponds to Beancount Amount.number). Supports up to 15 decimal places.
1916
2045
  */
1917
- currency: string;
2046
+ amount: number;
1918
2047
  /**
1919
- * Payee matching pattern
2048
+ * Price date (ISO 8601 format). Represents the date this price was valid.
2049
+ */
2050
+ date: string;
2051
+ /**
2052
+ * Metadata (corresponds to Beancount meta field). Contains source, confidence, note, etc.
1920
2053
  */
1921
- matchPayeePattern?: {
2054
+ meta: {
1922
2055
  [key: string]: unknown;
1923
2056
  };
1924
2057
  /**
1925
- * Amount tolerance percentage
2058
+ * Creation timestamp
1926
2059
  */
1927
- matchAmountTolerance: number;
2060
+ createdAt: string;
1928
2061
  /**
1929
- * Default expense account
2062
+ * Last update timestamp
1930
2063
  */
1931
- defaultExpenseAccount?: {
1932
- [key: string]: unknown;
1933
- };
2064
+ updatedAt: string;
2065
+ };
2066
+ type PriceListResponseDto = {
1934
2067
  /**
1935
- * Default payment account
2068
+ * List of prices
1936
2069
  */
1937
- defaultPaymentAccount?: {
1938
- [key: string]: unknown;
1939
- };
2070
+ items: Array<PriceResponseDto>;
1940
2071
  /**
1941
- * Default payee
2072
+ * Total number of prices
1942
2073
  */
1943
- defaultPayee?: {
1944
- [key: string]: unknown;
1945
- };
2074
+ total: number;
2075
+ };
2076
+ type UpdateBeanPriceDto = {
1946
2077
  /**
1947
- * Whether rule is active
2078
+ * Currency being priced
1948
2079
  */
1949
- isActive: boolean;
2080
+ currency?: string;
1950
2081
  /**
1951
- * Rule start date (YYYY-MM-DD)
2082
+ * Quote currency (pricing currency)
1952
2083
  */
1953
- startDate: string;
2084
+ quoteCurrency?: string;
1954
2085
  /**
1955
- * Rule end date (YYYY-MM-DD)
2086
+ * Price amount (MUST be >= 0 per Beancount spec)
1956
2087
  */
1957
- endDate?: {
1958
- [key: string]: unknown;
1959
- };
2088
+ amount?: number;
1960
2089
  /**
1961
- * Auto-create transaction on expected date
2090
+ * Price date (ISO 8601 format)
1962
2091
  */
1963
- autoCreate: boolean;
2092
+ date?: string;
1964
2093
  /**
1965
- * Last matched occurrence date (YYYY-MM-DD)
2094
+ * Metadata
1966
2095
  */
1967
- lastOccurrence?: {
2096
+ metadata?: {
1968
2097
  [key: string]: unknown;
1969
2098
  };
2099
+ };
2100
+ type DeleteOwnUserDto = {
1970
2101
  /**
1971
- * Total matched transactions count
2102
+ * Access token for user verification
1972
2103
  */
1973
- totalCount: number;
2104
+ accessToken: string;
2105
+ };
2106
+ type UserSettingsResponseDto = {
1974
2107
  /**
1975
- * Created at timestamp
2108
+ * Stored base currency choice (ISO 4217) for net-worth/report aggregation. null = user never chose; aggregates fall back to the region default at display time (#713).
1976
2109
  */
1977
- createdAt: string;
2110
+ baseCurrency: string | null;
2111
+ };
2112
+ type UserResponseDto = {
1978
2113
  /**
1979
- * Updated at timestamp
2114
+ * User ID
1980
2115
  */
1981
- updatedAt: string;
2116
+ id: string;
2117
+ /**
2118
+ * Assigned user role
2119
+ */
2120
+ role: string;
2121
+ /**
2122
+ * Permission strings
2123
+ */
2124
+ permissions: Array<string>;
2125
+ /**
2126
+ * User settings
2127
+ */
2128
+ settings: UserSettingsResponseDto;
1982
2129
  };
1983
- type CreateRuleFromTransactionDto = {
2130
+ type SignupDto = {
1984
2131
  /**
1985
- * Recurring frequency
2132
+ * Cloudflare Turnstile verification token (optional when Turnstile disabled)
1986
2133
  */
1987
- frequency: 'WEEKLY' | 'BIWEEKLY' | 'MONTHLY' | 'BIMONTHLY' | 'QUARTERLY' | 'YEARLY' | 'CUSTOM';
2134
+ turnstileToken?: string;
2135
+ };
2136
+ type SignupResponseDto = {
1988
2137
  /**
1989
- * Optional name override (default: transaction payee)
2138
+ * JWT auth token
1990
2139
  */
1991
- name?: string;
2140
+ authToken: string;
1992
2141
  /**
1993
- * Optional icon emoji
2142
+ * Auto-generated access token
1994
2143
  */
1995
- icon?: string;
2144
+ accessToken: string;
2145
+ /**
2146
+ * Assigned user role
2147
+ */
2148
+ role: 'USER' | 'ADMIN' | 'DEMO' | 'INACTIVE' | 'PAID' | 'OPS';
1996
2149
  };
1997
- type RecurringRuleWithStatsResponseDto = {
2150
+ /**
2151
+ * Assigned user role
2152
+ */
2153
+ type role = 'USER' | 'ADMIN' | 'DEMO' | 'INACTIVE' | 'PAID' | 'OPS';
2154
+ type UpdateUserSettingDto = {
1998
2155
  /**
1999
- * Rule ID
2156
+ * Security ID
2000
2157
  */
2001
- id: string;
2158
+ secId?: number;
2002
2159
  /**
2003
- * User ID
2160
+ * Annual interest rate
2004
2161
  */
2005
- userId: string;
2162
+ annualInterestRate?: number;
2006
2163
  /**
2007
- * Rule name
2164
+ * Currency code
2008
2165
  */
2009
- name: string;
2166
+ currency?: string;
2010
2167
  /**
2011
- * Icon emoji
2168
+ * Base currency code
2012
2169
  */
2013
- icon?: {
2014
- [key: string]: unknown;
2015
- };
2170
+ baseCurrency?: string;
2016
2171
  /**
2017
- * Recurring frequency
2172
+ * Benchmark symbol
2018
2173
  */
2019
- frequency: string;
2174
+ benchmark?: string;
2020
2175
  /**
2021
- * Expected amount
2176
+ * Color scheme
2022
2177
  */
2023
- expectedAmount: number;
2178
+ colorScheme?: 'DARK' | 'LIGHT';
2024
2179
  /**
2025
- * Expected day of month
2180
+ * Date range filter
2026
2181
  */
2027
- expectedDay?: {
2028
- [key: string]: unknown;
2029
- };
2182
+ dateRange?: string;
2030
2183
  /**
2031
- * Custom interval in days
2184
+ * Emergency fund amount
2032
2185
  */
2033
- customIntervalDays?: {
2034
- [key: string]: unknown;
2035
- };
2186
+ emergencyFund?: number;
2036
2187
  /**
2037
- * Currency code
2188
+ * Account filter IDs
2038
2189
  */
2039
- currency: string;
2190
+ 'filters.accounts'?: Array<string>;
2040
2191
  /**
2041
- * Payee matching pattern
2192
+ * Asset class filters
2042
2193
  */
2043
- matchPayeePattern?: {
2044
- [key: string]: unknown;
2045
- };
2194
+ 'filters.assetClasses'?: Array<string>;
2046
2195
  /**
2047
- * Amount tolerance percentage
2196
+ * Data source filter
2048
2197
  */
2049
- matchAmountTolerance: number;
2198
+ 'filters.dataSource'?: string;
2050
2199
  /**
2051
- * Default expense account
2200
+ * Symbol filter
2052
2201
  */
2053
- defaultExpenseAccount?: {
2054
- [key: string]: unknown;
2055
- };
2202
+ 'filters.symbol'?: string;
2056
2203
  /**
2057
- * Default payment account
2204
+ * Tag filters
2058
2205
  */
2059
- defaultPaymentAccount?: {
2060
- [key: string]: unknown;
2061
- };
2206
+ 'filters.tags'?: Array<string>;
2062
2207
  /**
2063
- * Default payee
2208
+ * Enable experimental features
2064
2209
  */
2065
- defaultPayee?: {
2066
- [key: string]: unknown;
2067
- };
2210
+ isExperimentalFeatures?: boolean;
2068
2211
  /**
2069
- * Whether rule is active
2212
+ * Enable restricted view mode
2070
2213
  */
2071
- isActive: boolean;
2214
+ isRestrictedView?: boolean;
2072
2215
  /**
2073
- * Rule start date (YYYY-MM-DD)
2216
+ * Language code
2074
2217
  */
2075
- startDate: string;
2218
+ language?: string;
2076
2219
  /**
2077
- * Rule end date (YYYY-MM-DD)
2220
+ * Locale code
2078
2221
  */
2079
- endDate?: {
2080
- [key: string]: unknown;
2081
- };
2222
+ locale?: string;
2082
2223
  /**
2083
- * Auto-create transaction on expected date
2224
+ * Projected total amount
2084
2225
  */
2085
- autoCreate: boolean;
2226
+ projectedTotalAmount?: number;
2086
2227
  /**
2087
- * Last matched occurrence date (YYYY-MM-DD)
2228
+ * Retirement date in ISO 8601 format
2088
2229
  */
2089
- lastOccurrence?: {
2090
- [key: string]: unknown;
2091
- };
2230
+ retirementDate?: string;
2092
2231
  /**
2093
- * Total matched transactions count
2232
+ * Savings rate percentage
2094
2233
  */
2095
- totalCount: number;
2234
+ savingsRate?: number;
2096
2235
  /**
2097
- * Created at timestamp
2236
+ * View mode
2098
2237
  */
2099
- createdAt: string;
2238
+ viewMode?: 'DEFAULT' | 'ZEN';
2239
+ };
2240
+ /**
2241
+ * Color scheme
2242
+ */
2243
+ type colorScheme = 'DARK' | 'LIGHT';
2244
+ /**
2245
+ * View mode
2246
+ */
2247
+ type viewMode = 'DEFAULT' | 'ZEN';
2248
+ type UpdatePropertyDto = {
2100
2249
  /**
2101
- * Updated at timestamp
2250
+ * Property value
2102
2251
  */
2103
- updatedAt: string;
2252
+ value: string;
2253
+ };
2254
+ type CreateRecurringRuleDto = {
2104
2255
  /**
2105
- * Number of pending expected transactions
2256
+ * Rule name (unique per user)
2106
2257
  */
2107
- pendingCount: number;
2258
+ name: string;
2108
2259
  /**
2109
- * Number of overdue expected transactions
2260
+ * Icon emoji
2110
2261
  */
2111
- overdueCount: number;
2262
+ icon?: string;
2112
2263
  /**
2113
- * Next expected date (YYYY-MM-DD)
2264
+ * Recurring frequency
2114
2265
  */
2115
- nextExpectedDate?: {
2116
- [key: string]: unknown;
2117
- };
2266
+ frequency: 'WEEKLY' | 'BIWEEKLY' | 'MONTHLY' | 'BIMONTHLY' | 'QUARTERLY' | 'YEARLY' | 'CUSTOM';
2118
2267
  /**
2119
- * Total amount of all matched transactions
2268
+ * Expected amount (positive number)
2120
2269
  */
2121
- totalAmount: number;
2270
+ expectedAmount: number;
2122
2271
  /**
2123
- * Average amount per transaction
2272
+ * Expected day of month (1-31)
2124
2273
  */
2125
- averageAmount: number;
2274
+ expectedDay?: number;
2126
2275
  /**
2127
- * Number of matched transactions
2276
+ * Custom interval in days (required for CUSTOM frequency)
2128
2277
  */
2129
- transactionCount: number;
2278
+ customIntervalDays?: number;
2130
2279
  /**
2131
- * First matched transaction date (YYYY-MM-DD)
2280
+ * Currency code
2132
2281
  */
2133
- firstDate?: {
2134
- [key: string]: unknown;
2135
- };
2282
+ currency?: string;
2136
2283
  /**
2137
- * Last matched transaction date (YYYY-MM-DD)
2284
+ * Payee matching pattern (supports wildcards)
2138
2285
  */
2139
- lastDate?: {
2140
- [key: string]: unknown;
2141
- };
2286
+ matchPayeePattern?: string;
2142
2287
  /**
2143
- * Amount variance (standard deviation squared)
2288
+ * Amount tolerance percentage (0-1)
2144
2289
  */
2145
- variance: number;
2290
+ matchAmountTolerance: number;
2146
2291
  /**
2147
- * Number of upcoming expected transactions
2292
+ * Default expense account for auto-create
2148
2293
  */
2149
- upcomingCount: number;
2294
+ defaultExpenseAccount?: string;
2295
+ /**
2296
+ * Default payment account for auto-create
2297
+ */
2298
+ defaultPaymentAccount?: string;
2299
+ /**
2300
+ * Default payee for auto-create
2301
+ */
2302
+ defaultPayee?: string;
2303
+ /**
2304
+ * Auto-create transaction when expected date arrives
2305
+ */
2306
+ autoCreate: boolean;
2307
+ /**
2308
+ * Rule start date (ISO format)
2309
+ */
2310
+ startDate?: string;
2311
+ /**
2312
+ * Rule end date (ISO format)
2313
+ */
2314
+ endDate?: string;
2150
2315
  };
2151
- type UpdateRecurringRuleDto = {
2316
+ /**
2317
+ * Recurring frequency
2318
+ */
2319
+ type frequency = 'WEEKLY' | 'BIWEEKLY' | 'MONTHLY' | 'BIMONTHLY' | 'QUARTERLY' | 'YEARLY' | 'CUSTOM';
2320
+ type RecurringRuleResponseDto = {
2321
+ /**
2322
+ * Rule ID
2323
+ */
2324
+ id: string;
2325
+ /**
2326
+ * User ID
2327
+ */
2328
+ userId: string;
2152
2329
  /**
2153
2330
  * Rule name
2154
2331
  */
2155
- name?: string;
2332
+ name: string;
2156
2333
  /**
2157
2334
  * Icon emoji
2158
2335
  */
@@ -2160,13 +2337,13 @@ type UpdateRecurringRuleDto = {
2160
2337
  /**
2161
2338
  * Recurring frequency
2162
2339
  */
2163
- frequency?: 'WEEKLY' | 'BIWEEKLY' | 'MONTHLY' | 'BIMONTHLY' | 'QUARTERLY' | 'YEARLY' | 'CUSTOM';
2340
+ frequency: string;
2164
2341
  /**
2165
2342
  * Expected amount
2166
2343
  */
2167
- expectedAmount?: number;
2344
+ expectedAmount: number;
2168
2345
  /**
2169
- * Expected day of month (1-31)
2346
+ * Expected day of month
2170
2347
  */
2171
2348
  expectedDay?: number;
2172
2349
  /**
@@ -2176,15 +2353,15 @@ type UpdateRecurringRuleDto = {
2176
2353
  /**
2177
2354
  * Currency code
2178
2355
  */
2179
- currency?: string;
2356
+ currency: string;
2180
2357
  /**
2181
2358
  * Payee matching pattern
2182
2359
  */
2183
2360
  matchPayeePattern?: string;
2184
2361
  /**
2185
- * Amount tolerance percentage (0-1)
2362
+ * Amount tolerance percentage
2186
2363
  */
2187
- matchAmountTolerance?: number;
2364
+ matchAmountTolerance: number;
2188
2365
  /**
2189
2366
  * Default expense account
2190
2367
  */
@@ -2198,89 +2375,29 @@ type UpdateRecurringRuleDto = {
2198
2375
  */
2199
2376
  defaultPayee?: string;
2200
2377
  /**
2201
- * Auto-create transaction
2378
+ * Whether rule is active
2202
2379
  */
2203
- autoCreate?: boolean;
2380
+ isActive: boolean;
2204
2381
  /**
2205
- * Rule active status
2382
+ * Rule start date (YYYY-MM-DD)
2206
2383
  */
2207
- isActive?: boolean;
2384
+ startDate: string;
2208
2385
  /**
2209
- * Rule end date (ISO format)
2386
+ * Rule end date (YYYY-MM-DD)
2210
2387
  */
2211
2388
  endDate?: string;
2212
- };
2213
- type ExpectedTransactionRuleDto = {
2214
- /**
2215
- * Rule name
2216
- */
2217
- name: string;
2218
- /**
2219
- * Rule icon
2220
- */
2221
- icon?: {
2222
- [key: string]: unknown;
2223
- };
2224
- /**
2225
- * Rule frequency
2226
- */
2227
- frequency: string;
2228
- /**
2229
- * Currency code
2230
- */
2231
- currency: string;
2232
- };
2233
- type ExpectedTransactionResponseDto = {
2234
- /**
2235
- * Expected transaction ID
2236
- */
2237
- id: string;
2238
- /**
2239
- * User ID
2240
- */
2241
- userId: string;
2242
- /**
2243
- * Associated rule ID
2244
- */
2245
- ruleId: string;
2246
- /**
2247
- * Expected date (YYYY-MM-DD)
2248
- */
2249
- expectedDate: string;
2250
- /**
2251
- * Expected amount
2252
- */
2253
- expectedAmount: number;
2254
- /**
2255
- * Status (PENDING, COMPLETED, SKIPPED)
2256
- */
2257
- status: string;
2258
- /**
2259
- * Matched transaction ID
2260
- */
2261
- matchedTransactionId?: {
2262
- [key: string]: unknown;
2263
- };
2264
- /**
2265
- * Match timestamp (ISO 8601)
2266
- */
2267
- matchedAt?: {
2268
- [key: string]: unknown;
2269
- };
2270
2389
  /**
2271
- * Match confidence score (0-1)
2390
+ * Auto-create transaction on expected date
2272
2391
  */
2273
- matchConfidence?: {
2274
- [key: string]: unknown;
2275
- };
2392
+ autoCreate: boolean;
2276
2393
  /**
2277
- * Whether this expected transaction is overdue
2394
+ * Last matched occurrence date (YYYY-MM-DD)
2278
2395
  */
2279
- isOverdue: boolean;
2396
+ lastOccurrence?: string;
2280
2397
  /**
2281
- * Rule information
2398
+ * Total matched transactions count
2282
2399
  */
2283
- rule: ExpectedTransactionRuleDto;
2400
+ totalCount: number;
2284
2401
  /**
2285
2402
  * Created at timestamp
2286
2403
  */
@@ -2290,434 +2407,396 @@ type ExpectedTransactionResponseDto = {
2290
2407
  */
2291
2408
  updatedAt: string;
2292
2409
  };
2293
- type ExpectedTransactionListResponseDto = {
2294
- items: Array<ExpectedTransactionResponseDto>;
2295
- /**
2296
- * Total count
2297
- */
2298
- total: number;
2299
- };
2300
- type ConfirmMatchDto = {
2410
+ type CreateRuleFromTransactionDto = {
2301
2411
  /**
2302
- * Transaction ID to match with
2412
+ * Recurring frequency
2303
2413
  */
2304
- transactionId: string;
2305
- };
2306
- type EnterNowDto = {
2414
+ frequency: 'WEEKLY' | 'BIWEEKLY' | 'MONTHLY' | 'BIMONTHLY' | 'QUARTERLY' | 'YEARLY' | 'CUSTOM';
2307
2415
  /**
2308
- * Override expense account (uses rule default if not provided)
2416
+ * Optional name override (default: transaction payee)
2309
2417
  */
2310
- expenseAccount?: string;
2418
+ name?: string;
2311
2419
  /**
2312
- * Override payment account (uses rule default if not provided)
2420
+ * Optional icon emoji
2313
2421
  */
2314
- paymentAccount?: string;
2422
+ icon?: string;
2423
+ };
2424
+ type RecurringRuleWithStatsResponseDto = {
2315
2425
  /**
2316
- * Override amount (uses expected amount if not provided)
2426
+ * Rule ID
2317
2427
  */
2318
- amount?: number;
2428
+ id: string;
2319
2429
  /**
2320
- * Override payee (uses rule default if not provided)
2430
+ * User ID
2321
2431
  */
2322
- payee?: string;
2432
+ userId: string;
2323
2433
  /**
2324
- * Optional narration
2434
+ * Rule name
2325
2435
  */
2326
- narration?: string;
2327
- };
2328
- type ForecastItemDto = {
2436
+ name: string;
2329
2437
  /**
2330
- * Rule name
2438
+ * Icon emoji
2331
2439
  */
2332
- rule: string;
2440
+ icon?: string;
2333
2441
  /**
2334
- * Rule ID
2442
+ * Recurring frequency
2335
2443
  */
2336
- ruleId: string;
2444
+ frequency: string;
2337
2445
  /**
2338
2446
  * Expected amount
2339
2447
  */
2340
- amount: number;
2448
+ expectedAmount: number;
2341
2449
  /**
2342
- * Expected date (YYYY-MM-DD)
2450
+ * Expected day of month
2343
2451
  */
2344
- date: string;
2452
+ expectedDay?: number;
2345
2453
  /**
2346
- * Rule icon emoji
2454
+ * Custom interval in days
2347
2455
  */
2348
- icon: string | null;
2456
+ customIntervalDays?: number;
2349
2457
  /**
2350
2458
  * Currency code
2351
2459
  */
2352
2460
  currency: string;
2353
- };
2354
- type MonthlyForecastDto = {
2355
2461
  /**
2356
- * Month (YYYY-MM)
2462
+ * Payee matching pattern
2357
2463
  */
2358
- month: string;
2464
+ matchPayeePattern?: string;
2359
2465
  /**
2360
- * Total expected outflow for the month
2466
+ * Amount tolerance percentage
2361
2467
  */
2362
- expectedOutflow: number;
2468
+ matchAmountTolerance: number;
2363
2469
  /**
2364
- * Number of expected transactions
2470
+ * Default expense account
2365
2471
  */
2366
- itemCount: number;
2472
+ defaultExpenseAccount?: string;
2367
2473
  /**
2368
- * Breakdown by currency
2474
+ * Default payment account
2369
2475
  */
2370
- byCurrency: {
2371
- [key: string]: unknown;
2372
- };
2476
+ defaultPaymentAccount?: string;
2373
2477
  /**
2374
- * Individual forecast items
2478
+ * Default payee
2375
2479
  */
2376
- items: Array<ForecastItemDto>;
2377
- };
2378
- type ForecastResponseDto = {
2480
+ defaultPayee?: string;
2379
2481
  /**
2380
- * Monthly forecast data
2482
+ * Whether rule is active
2381
2483
  */
2382
- forecast: Array<MonthlyForecastDto>;
2484
+ isActive: boolean;
2383
2485
  /**
2384
- * Total expected outflow across all months
2486
+ * Rule start date (YYYY-MM-DD)
2385
2487
  */
2386
- totalOutflow: number;
2488
+ startDate: string;
2387
2489
  /**
2388
- * Total by currency across all months
2490
+ * Rule end date (YYYY-MM-DD)
2389
2491
  */
2390
- totalByCurrency: {
2391
- [key: string]: unknown;
2392
- };
2492
+ endDate?: string;
2393
2493
  /**
2394
- * Number of active recurring rules included
2494
+ * Auto-create transaction on expected date
2395
2495
  */
2396
- rulesCount: number;
2496
+ autoCreate: boolean;
2397
2497
  /**
2398
- * Forecast period start date
2498
+ * Last matched occurrence date (YYYY-MM-DD)
2399
2499
  */
2400
- periodStart: string;
2500
+ lastOccurrence?: string;
2401
2501
  /**
2402
- * Forecast period end date
2502
+ * Total matched transactions count
2403
2503
  */
2404
- periodEnd: string;
2405
- };
2406
- type CurrencyBalanceDto = {
2504
+ totalCount: number;
2407
2505
  /**
2408
- * ISO 4217 currency code
2506
+ * Created at timestamp
2409
2507
  */
2410
- currency: string;
2508
+ createdAt: string;
2411
2509
  /**
2412
- * Balance amount
2510
+ * Updated at timestamp
2413
2511
  */
2414
- balance: string;
2415
- };
2416
- type TimeSeriesPointDto = {
2512
+ updatedAt: string;
2417
2513
  /**
2418
- * Date in YYYY-MM-DD format
2514
+ * Number of pending expected transactions
2419
2515
  */
2420
- date: string;
2516
+ pendingCount: number;
2421
2517
  /**
2422
- * Value at this date (in base currency)
2518
+ * Number of overdue expected transactions
2423
2519
  */
2424
- value: string;
2520
+ overdueCount: number;
2425
2521
  /**
2426
- * Change from previous point
2522
+ * Next expected date (YYYY-MM-DD)
2427
2523
  */
2428
- change?: {
2429
- [key: string]: unknown;
2430
- };
2524
+ nextExpectedDate?: string;
2431
2525
  /**
2432
- * Total assets at this date (in base currency)
2526
+ * Total amount of all matched transactions
2433
2527
  */
2434
- assets?: string;
2528
+ totalAmount: number;
2435
2529
  /**
2436
- * Total liabilities at this date (in base currency)
2530
+ * Average amount per transaction
2437
2531
  */
2438
- liabilities?: string;
2532
+ averageAmount: number;
2439
2533
  /**
2440
- * Multi-currency breakdown for this point
2534
+ * Number of matched transactions
2441
2535
  */
2442
- byCurrency?: Array<CurrencyBalanceDto>;
2443
- };
2444
- type TrendSummaryDto = {
2536
+ transactionCount: number;
2445
2537
  /**
2446
- * Value at start of period
2538
+ * First matched transaction date (YYYY-MM-DD)
2447
2539
  */
2448
- startValue: string;
2540
+ firstDate?: string;
2449
2541
  /**
2450
- * Value at end of period
2542
+ * Last matched transaction date (YYYY-MM-DD)
2451
2543
  */
2452
- endValue: string;
2544
+ lastDate?: string;
2453
2545
  /**
2454
- * Total change over period
2546
+ * Amount variance (standard deviation squared)
2455
2547
  */
2456
- totalChange: string;
2548
+ variance: number;
2549
+ /**
2550
+ * Number of upcoming expected transactions
2551
+ */
2552
+ upcomingCount: number;
2553
+ };
2554
+ type UpdateRecurringRuleDto = {
2555
+ /**
2556
+ * Rule name (unique per user)
2557
+ */
2558
+ name?: string;
2457
2559
  /**
2458
- * Total change percentage
2560
+ * Icon emoji
2459
2561
  */
2460
- totalChangePercentage: string;
2461
- };
2462
- type MultiCurrencyPointDto = {
2562
+ icon?: string;
2463
2563
  /**
2464
- * Date in YYYY-MM-DD format
2564
+ * Recurring frequency
2465
2565
  */
2466
- date: string;
2566
+ frequency?: 'WEEKLY' | 'BIWEEKLY' | 'MONTHLY' | 'BIMONTHLY' | 'QUARTERLY' | 'YEARLY' | 'CUSTOM';
2467
2567
  /**
2468
- * Balances by currency
2568
+ * Expected amount (positive number)
2469
2569
  */
2470
- byCurrency: Array<CurrencyBalanceDto>;
2471
- };
2472
- type PortfolioTrendsResponseDto = {
2570
+ expectedAmount?: number;
2473
2571
  /**
2474
- * Time series data points
2572
+ * Expected day of month (1-31)
2475
2573
  */
2476
- series: Array<TimeSeriesPointDto>;
2574
+ expectedDay?: number;
2477
2575
  /**
2478
- * Period summary
2576
+ * Currency code
2479
2577
  */
2480
- summary: TrendSummaryDto;
2578
+ currency?: string;
2481
2579
  /**
2482
- * Period requested
2580
+ * Payee matching pattern (supports wildcards)
2483
2581
  */
2484
- period: string;
2582
+ matchPayeePattern?: string;
2485
2583
  /**
2486
- * Data granularity
2584
+ * Amount tolerance percentage (0-1)
2487
2585
  */
2488
- granularity: string;
2586
+ matchAmountTolerance?: number;
2489
2587
  /**
2490
- * Base currency for converted values
2588
+ * Default expense account for auto-create
2491
2589
  */
2492
- currency: string;
2590
+ defaultExpenseAccount?: string;
2493
2591
  /**
2494
- * Multi-currency time series (each point has currency breakdown)
2592
+ * Default payment account for auto-create
2495
2593
  */
2496
- byCurrency?: Array<MultiCurrencyPointDto>;
2594
+ defaultPaymentAccount?: string;
2497
2595
  /**
2498
- * Exchange rate warnings
2596
+ * Default payee for auto-create
2499
2597
  */
2500
- warnings?: Array<ExchangeRateWarningDto>;
2501
- };
2502
- type CashFlowPointDto = {
2598
+ defaultPayee?: string;
2503
2599
  /**
2504
- * Month key (YYYY-MM)
2600
+ * Auto-create transaction when expected date arrives
2505
2601
  */
2506
- month: string;
2602
+ autoCreate?: boolean;
2507
2603
  /**
2508
- * Income in base currency (absolute, converted)
2604
+ * Rule end date (ISO format)
2509
2605
  */
2510
- income: string;
2606
+ endDate?: string;
2511
2607
  /**
2512
- * Expense in base currency (absolute, converted)
2608
+ * Custom interval in days
2513
2609
  */
2514
- expense: string;
2610
+ customIntervalDays?: number;
2515
2611
  /**
2516
- * netSavings = income − expense (savings positive)
2612
+ * Rule active status
2517
2613
  */
2518
- netSavings: string;
2614
+ isActive?: boolean;
2519
2615
  };
2520
- type CashFlowTrendSummaryDto = {
2616
+ type ExpectedTransactionRuleDto = {
2521
2617
  /**
2522
- * Total income across the period
2618
+ * Rule name
2523
2619
  */
2524
- totalIncome: string;
2620
+ name: string;
2525
2621
  /**
2526
- * Total expense across the period
2622
+ * Rule icon
2527
2623
  */
2528
- totalExpense: string;
2624
+ icon?: string;
2529
2625
  /**
2530
- * income − expense across the period
2626
+ * Rule frequency
2531
2627
  */
2532
- totalNetSavings: string;
2628
+ frequency: string;
2533
2629
  /**
2534
- * totalNetSavings divided by the window length (N months, incl. zero-filled)
2630
+ * Currency code
2535
2631
  */
2536
- averageMonthlyNetSavings: string;
2632
+ currency: string;
2537
2633
  };
2538
- type CashFlowTrendsResponseDto = {
2634
+ type ExpectedTransactionResponseDto = {
2539
2635
  /**
2540
- * Monthly cash-flow series (fixed N-month window, zero-filled)
2636
+ * Expected transaction ID
2541
2637
  */
2542
- series: Array<CashFlowPointDto>;
2638
+ id: string;
2543
2639
  /**
2544
- * Period totals
2640
+ * User ID
2545
2641
  */
2546
- summary: CashFlowTrendSummaryDto;
2642
+ userId: string;
2547
2643
  /**
2548
- * Period requested
2644
+ * Associated rule ID
2549
2645
  */
2550
- period: string;
2646
+ ruleId: string;
2551
2647
  /**
2552
- * Data granularity (v1 returns month buckets)
2648
+ * Expected date (YYYY-MM-DD)
2553
2649
  */
2554
- granularity: string;
2650
+ expectedDate: string;
2555
2651
  /**
2556
- * Base currency for converted values
2652
+ * Expected amount
2557
2653
  */
2558
- currency: string;
2654
+ expectedAmount: number;
2559
2655
  /**
2560
- * Exchange rate warnings (e.g. missing rate for a currency)
2656
+ * Status (PENDING, COMPLETED, SKIPPED)
2561
2657
  */
2562
- warnings?: Array<ExchangeRateWarningDto>;
2563
- };
2564
- type GenerateSnapshotBody = unknown;
2565
- type GenerateSnapshotResponse = unknown;
2566
- type BackfillSnapshotsBody = unknown;
2567
- type BackfillSnapshotsResponse = unknown;
2568
- type DeleteOwnUserDto = {
2658
+ status: string;
2569
2659
  /**
2570
- * Access token for user verification
2660
+ * Matched transaction ID
2571
2661
  */
2572
- accessToken: string;
2573
- };
2574
- type UserSettingsResponseDto = {
2662
+ matchedTransactionId?: string;
2575
2663
  /**
2576
- * Base currency (ISO 4217) for net-worth/report aggregation. Independent of region (ADR-0006).
2664
+ * Match timestamp (ISO 8601)
2577
2665
  */
2578
- baseCurrency: string | null;
2579
- };
2580
- type UserResponseDto = {
2666
+ matchedAt?: string;
2581
2667
  /**
2582
- * User ID
2668
+ * Match confidence score (0-1)
2583
2669
  */
2584
- id: string;
2670
+ matchConfidence?: number;
2585
2671
  /**
2586
- * Assigned user role
2672
+ * Whether this expected transaction is overdue
2587
2673
  */
2588
- role: string;
2674
+ isOverdue: boolean;
2589
2675
  /**
2590
- * Permission strings
2676
+ * Rule information
2591
2677
  */
2592
- permissions: Array<string>;
2678
+ rule: ExpectedTransactionRuleDto;
2593
2679
  /**
2594
- * User settings
2680
+ * Created at timestamp
2595
2681
  */
2596
- settings: UserSettingsResponseDto;
2597
- };
2598
- type SignupDto = {
2682
+ createdAt: string;
2599
2683
  /**
2600
- * Cloudflare Turnstile verification token (optional when Turnstile disabled)
2684
+ * Updated at timestamp
2601
2685
  */
2602
- turnstileToken?: string;
2686
+ updatedAt: string;
2603
2687
  };
2604
- type SignupResponseDto = {
2605
- /**
2606
- * JWT auth token
2607
- */
2608
- authToken: string;
2688
+ type ExpectedTransactionListResponseDto = {
2689
+ items: Array<ExpectedTransactionResponseDto>;
2609
2690
  /**
2610
- * Auto-generated access token
2691
+ * Total count
2611
2692
  */
2612
- accessToken: string;
2693
+ total: number;
2694
+ };
2695
+ type ConfirmMatchDto = {
2613
2696
  /**
2614
- * Assigned user role
2697
+ * Transaction ID to match with
2615
2698
  */
2616
- role: 'USER' | 'ADMIN' | 'DEMO' | 'INACTIVE' | 'PAID' | 'OPS';
2699
+ transactionId: string;
2617
2700
  };
2618
- /**
2619
- * Assigned user role
2620
- */
2621
- type role = 'USER' | 'ADMIN' | 'DEMO' | 'INACTIVE' | 'PAID' | 'OPS';
2622
- type UpdateUserSettingDto = {
2701
+ type EnterNowDto = {
2623
2702
  /**
2624
- * Security ID
2703
+ * Override expense account (uses rule default if not provided)
2625
2704
  */
2626
- secId?: number;
2705
+ expenseAccount?: string;
2627
2706
  /**
2628
- * Annual interest rate
2707
+ * Override payment account (uses rule default if not provided)
2629
2708
  */
2630
- annualInterestRate?: number;
2709
+ paymentAccount?: string;
2631
2710
  /**
2632
- * Currency code
2711
+ * Override amount (uses expected amount if not provided)
2633
2712
  */
2634
- currency?: string;
2713
+ amount?: number;
2635
2714
  /**
2636
- * Base currency code
2715
+ * Override payee (uses rule default if not provided)
2637
2716
  */
2638
- baseCurrency?: string;
2717
+ payee?: string;
2639
2718
  /**
2640
- * Benchmark symbol
2719
+ * Optional narration
2641
2720
  */
2642
- benchmark?: string;
2721
+ narration?: string;
2722
+ };
2723
+ type ForecastItemDto = {
2643
2724
  /**
2644
- * Color scheme
2725
+ * Rule name
2645
2726
  */
2646
- colorScheme?: 'DARK' | 'LIGHT';
2727
+ rule: string;
2647
2728
  /**
2648
- * Date range filter
2729
+ * Rule ID
2649
2730
  */
2650
- dateRange?: string;
2731
+ ruleId: string;
2651
2732
  /**
2652
- * Emergency fund amount
2733
+ * Expected amount
2653
2734
  */
2654
- emergencyFund?: number;
2735
+ amount: number;
2655
2736
  /**
2656
- * Account filter IDs
2737
+ * Expected date (YYYY-MM-DD)
2657
2738
  */
2658
- 'filters.accounts'?: Array<string>;
2739
+ date: string;
2659
2740
  /**
2660
- * Asset class filters
2741
+ * Rule icon emoji
2661
2742
  */
2662
- 'filters.assetClasses'?: Array<string>;
2743
+ icon: string | null;
2663
2744
  /**
2664
- * Data source filter
2745
+ * Currency code
2665
2746
  */
2666
- 'filters.dataSource'?: string;
2747
+ currency: string;
2748
+ };
2749
+ type MonthlyForecastDto = {
2667
2750
  /**
2668
- * Symbol filter
2751
+ * Month (YYYY-MM)
2669
2752
  */
2670
- 'filters.symbol'?: string;
2753
+ month: string;
2671
2754
  /**
2672
- * Tag filters
2755
+ * Total expected outflow for the month
2673
2756
  */
2674
- 'filters.tags'?: Array<string>;
2757
+ expectedOutflow: number;
2675
2758
  /**
2676
- * Enable experimental features
2759
+ * Number of expected transactions
2677
2760
  */
2678
- isExperimentalFeatures?: boolean;
2761
+ itemCount: number;
2679
2762
  /**
2680
- * Enable restricted view mode
2763
+ * Breakdown by currency
2681
2764
  */
2682
- isRestrictedView?: boolean;
2765
+ byCurrency: {
2766
+ [key: string]: unknown;
2767
+ };
2683
2768
  /**
2684
- * Language code
2769
+ * Individual forecast items
2685
2770
  */
2686
- language?: string;
2771
+ items: Array<ForecastItemDto>;
2772
+ };
2773
+ type ForecastResponseDto = {
2687
2774
  /**
2688
- * Locale code
2775
+ * Monthly forecast data
2689
2776
  */
2690
- locale?: string;
2777
+ forecast: Array<MonthlyForecastDto>;
2691
2778
  /**
2692
- * Projected total amount
2779
+ * Total expected outflow across all months
2693
2780
  */
2694
- projectedTotalAmount?: number;
2781
+ totalOutflow: number;
2695
2782
  /**
2696
- * Retirement date in ISO 8601 format
2783
+ * Total by currency across all months
2697
2784
  */
2698
- retirementDate?: string;
2785
+ totalByCurrency: {
2786
+ [key: string]: unknown;
2787
+ };
2699
2788
  /**
2700
- * Savings rate percentage
2789
+ * Number of active recurring rules included
2701
2790
  */
2702
- savingsRate?: number;
2791
+ rulesCount: number;
2703
2792
  /**
2704
- * View mode
2793
+ * Forecast period start date
2705
2794
  */
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 = {
2795
+ periodStart: string;
2717
2796
  /**
2718
- * Property value
2797
+ * Forecast period end date
2719
2798
  */
2720
- value: string;
2799
+ periodEnd: string;
2721
2800
  };
2722
2801
  type CreateTransactionRuleDto = {
2723
2802
  name: string;
@@ -3021,14 +3100,14 @@ type UpdateTransactionRuleDto = {
3021
3100
  */
3022
3101
  amountMax?: number;
3023
3102
  priority?: number;
3024
- /**
3025
- * Enable or disable the rule
3026
- */
3027
- enabled?: boolean;
3028
3103
  additionalTags?: Array<unknown[]>;
3029
3104
  additionalMetadata?: {
3030
3105
  [key: string]: unknown;
3031
3106
  };
3107
+ /**
3108
+ * Enable or disable the rule
3109
+ */
3110
+ enabled?: boolean;
3032
3111
  };
3033
3112
  type TestRuleDto = {
3034
3113
  narration: string;
@@ -3196,6 +3275,10 @@ type OnboardingAccountDto = {
3196
3275
  * Platform ID to bind the account to (references Platform.id); omit for unbound
3197
3276
  */
3198
3277
  platformId?: string;
3278
+ /**
3279
+ * User-set display name override (omit/null = keep the derived name)
3280
+ */
3281
+ displayName?: string | null;
3199
3282
  };
3200
3283
  type OnboardingDto = {
3201
3284
  /**
@@ -3772,10 +3855,26 @@ type ProcessNlpDto = {
3772
3855
  */
3773
3856
  selectedRuleId?: string;
3774
3857
  /**
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.
3858
+ * confirm_account echo-back: account path selected from the prior confirm_account response (suggestedAccount, similarAccounts[i].path, or a typed path). Applied directly when the session is confirming_account — no NL re-parse.
3776
3859
  */
3777
3860
  selectedAccount?: string;
3861
+ /**
3862
+ * Viewpoint account hint: the beancount path the user drilled into (e.g. from an account drill-down). Tie-break only — never overrides accounts resolved from the text. Must be an owned, OPEN Assets:/Liabilities: account; unresolvable hints are silently ignored.
3863
+ */
3864
+ viewpointAccount?: string;
3865
+ /**
3866
+ * Viewpoint category hint: the ADR-0075 Group segment the user drilled into (e.g. 'Food'). Resolved to a concrete OPEN account in that group; tie-break only — never overrides a category resolved from the text.
3867
+ */
3868
+ viewpointCategory?: string;
3869
+ /**
3870
+ * Companion flow root for viewpointCategory ('income' | 'expense'), mirroring the ADR-0126 list-endpoint invariant. Derived from the session's routed intent (multi-turn) when absent; a first-turn flow-less category hint is dropped — send the flow explicitly.
3871
+ */
3872
+ viewpointFlow?: 'income' | 'expense';
3778
3873
  };
3874
+ /**
3875
+ * Companion flow root for viewpointCategory ('income' | 'expense'), mirroring the ADR-0126 list-endpoint invariant. Derived from the session's routed intent (multi-turn) when absent; a first-turn flow-less category hint is dropped — send the flow explicitly.
3876
+ */
3877
+ type viewpointFlow = 'income' | 'expense';
3779
3878
  type NlpTransactionInfoDto = {
3780
3879
  /**
3781
3880
  * Transaction ID
@@ -3994,6 +4093,16 @@ type NlpRuleConfirmationDataDto = {
3994
4093
  */
3995
4094
  reasons: Array<string>;
3996
4095
  };
4096
+ type NlpAccountCandidateDto = {
4097
+ /**
4098
+ * Canonical beancount account path (echo back on selection)
4099
+ */
4100
+ path: string;
4101
+ /**
4102
+ * Localized display name (ADR-0114 read-time projection, user locale)
4103
+ */
4104
+ name: string;
4105
+ };
3997
4106
  type NlpAccountConfirmationDataDto = {
3998
4107
  /**
3999
4108
  * The invalid account name
@@ -4004,9 +4113,9 @@ type NlpAccountConfirmationDataDto = {
4004
4113
  */
4005
4114
  suggestedAccount?: string;
4006
4115
  /**
4007
- * Similar accounts for user selection
4116
+ * Similar accounts for user selection (path + localized name, #680)
4008
4117
  */
4009
- similarAccounts: Array<string>;
4118
+ similarAccounts: Array<NlpAccountCandidateDto>;
4010
4119
  /**
4011
4120
  * Error message explaining the issue
4012
4121
  */
@@ -4330,7 +4439,7 @@ type PlatformListItemDto = {
4330
4439
  /**
4331
4440
  * Platform type
4332
4441
  */
4333
- type type3 = 'BANK' | 'BROKERAGE' | 'CRYPTO_EXCHANGE' | 'PAYMENT' | 'INVESTMENT' | 'INSURANCE' | 'OTHER';
4442
+ type type4 = 'BANK' | 'BROKERAGE' | 'CRYPTO_EXCHANGE' | 'PAYMENT' | 'INVESTMENT' | 'INSURANCE' | 'OTHER';
4334
4443
  type PlatformMatchResultDto = {
4335
4444
  /**
4336
4445
  * Global platform ID
@@ -4395,6 +4504,46 @@ type PlatformMatchResponseDto = {
4395
4504
  * Overall match quality — top row's tier, or 'none' when no hits
4396
4505
  */
4397
4506
  type matchType2 = 'none' | 'exact' | 'prefix' | 'substring';
4507
+ type PlatformStandardsPlatformDto = {
4508
+ /**
4509
+ * Global platform ID
4510
+ */
4511
+ id: string;
4512
+ /**
4513
+ * Platform name (e.g., "ICBC")
4514
+ */
4515
+ name: string;
4516
+ /**
4517
+ * Canonical identifier in ACCOUNT_RE format (e.g., "icbc")
4518
+ */
4519
+ canonical: string;
4520
+ /**
4521
+ * Suggested path segment — canonical PascalCased per hyphen-part, hyphens preserved (e.g. "Apple-Pay")
4522
+ */
4523
+ suggestedSegment: string;
4524
+ /**
4525
+ * Platform type
4526
+ */
4527
+ type: 'BANK' | 'BROKERAGE' | 'CRYPTO_EXCHANGE' | 'PAYMENT' | 'INVESTMENT' | 'INSURANCE' | 'OTHER';
4528
+ /**
4529
+ * Region-aware category (institution vocab, e.g. DigitalWallet/Bank) resolved against the final region. null = no region-aware suggestion; fall back to type.
4530
+ */
4531
+ category: string | null;
4532
+ };
4533
+ type PlatformStandardsResponseDto = {
4534
+ /**
4535
+ * The selected platform (institution lock source)
4536
+ */
4537
+ platform: PlatformStandardsPlatformDto;
4538
+ /**
4539
+ * Resolved template region (ISO 3166-1 alpha-2, UPPERCASE): the platform's own countryCode when set, else the region query param. For regions without a regional template file the template list falls back to the universal-only catalog while region still echoes the code.
4540
+ */
4541
+ region: string;
4542
+ /**
4543
+ * Candidate account-standard templates of the resolved region (groupable by productCategory client-side)
4544
+ */
4545
+ templates: Array<AccountStandardResponseDto>;
4546
+ };
4398
4547
  type CreatePlatformDto = {
4399
4548
  /**
4400
4549
  * Platform name
@@ -4545,7 +4694,7 @@ type AccountItemDto = {
4545
4694
  */
4546
4695
  name: string;
4547
4696
  /**
4548
- * Display name (last part of account path)
4697
+ * Display name: user-set name if provided (#762), else last part of account path
4549
4698
  */
4550
4699
  displayName: string;
4551
4700
  /**
@@ -4571,11 +4720,11 @@ type PlatformGroupDto = {
4571
4720
  */
4572
4721
  platformName: string;
4573
4722
  /**
4574
- * Accounts within this platform
4723
+ * Accounts within this platform (Assets and Liabilities rows, #696)
4575
4724
  */
4576
4725
  accounts: Array<AccountItemDto>;
4577
4726
  /**
4578
- * FX-converted total balance in base currency
4727
+ * FX-converted total balance in base currency (nets Assets + Liabilities rows; can be negative)
4579
4728
  */
4580
4729
  totalBalance: string;
4581
4730
  /**
@@ -4587,7 +4736,7 @@ type PlatformGroupDto = {
4587
4736
  */
4588
4737
  convertedBalance?: string;
4589
4738
  /**
4590
- * Share of the grand converted total (0-100); 0 when grand total is 0
4739
+ * Share of the converted asset-side grand total (0-100); liability balances are excluded from the basis; 0 when grand total is 0 (#696)
4591
4740
  */
4592
4741
  sharePct: number;
4593
4742
  };
@@ -4611,7 +4760,7 @@ type AccountExchangeRateWarningDto = {
4611
4760
  };
4612
4761
  type AccountsSummaryDto = {
4613
4762
  /**
4614
- * Total number of accounts
4763
+ * Total number of accounts (balance sheet: Assets + Liabilities, #696)
4615
4764
  */
4616
4765
  totalAccounts: number;
4617
4766
  /**
@@ -4647,7 +4796,7 @@ type AccountItemWithAssetClassDto = {
4647
4796
  */
4648
4797
  name: string;
4649
4798
  /**
4650
- * Display name (last part of account path)
4799
+ * Display name: user-set name if provided (#762), else last part of account path
4651
4800
  */
4652
4801
  displayName: string;
4653
4802
  /**
@@ -4933,9 +5082,7 @@ type MonetaryDto = {
4933
5082
  /**
4934
5083
  * Converted to user base currency (Decimal string)
4935
5084
  */
4936
- baseCcyEquivalent?: {
4937
- [key: string]: unknown;
4938
- } | null;
5085
+ baseCcyEquivalent?: string | null;
4939
5086
  };
4940
5087
  type CurrentPriceDto = {
4941
5088
  /**
@@ -4983,15 +5130,11 @@ type HoldingPnlRowDto = {
4983
5130
  /**
4984
5131
  * Account settlement currency (ISO 4217), from cost currency
4985
5132
  */
4986
- accountCcy?: {
4987
- [key: string]: unknown;
4988
- } | null;
5133
+ accountCcy?: string | null;
4989
5134
  /**
4990
5135
  * Broker type derived from Platform.type
4991
5136
  */
4992
- brokerType?: {
4993
- [key: string]: unknown;
4994
- } | null;
5137
+ brokerType?: string | null;
4995
5138
  /**
4996
5139
  * Commodity symbol
4997
5140
  */
@@ -5001,9 +5144,7 @@ type HoldingPnlRowDto = {
5001
5144
  */
5002
5145
  chartToken: 'equity' | 'fund' | 'bond' | 'cash' | 'other';
5003
5146
  assetClass: string;
5004
- assetSubClass?: {
5005
- [key: string]: unknown;
5006
- } | null;
5147
+ assetSubClass?: string | null;
5007
5148
  /**
5008
5149
  * Net held units (Decimal string)
5009
5150
  */
@@ -5027,15 +5168,11 @@ type HoldingPnlRowDto = {
5027
5168
  /**
5028
5169
  * Unrealized P&L in base currency (Decimal string); null when any FX/price missing
5029
5170
  */
5030
- unrealizedPnlBase?: {
5031
- [key: string]: unknown;
5032
- } | null;
5171
+ unrealizedPnlBase?: string | null;
5033
5172
  /**
5034
5173
  * Unrealized P&L % (Decimal string)
5035
5174
  */
5036
- unrealizedPnlPct?: {
5037
- [key: string]: unknown;
5038
- } | null;
5175
+ unrealizedPnlPct?: string | null;
5039
5176
  /**
5040
5177
  * Historical FX rate applied to cost basis
5041
5178
  */
@@ -5047,9 +5184,7 @@ type HoldingPnlRowDto = {
5047
5184
  /**
5048
5185
  * Share of invested assets % (Decimal string); only for invested chartTokens
5049
5186
  */
5050
- pctOfInvestedAssets?: {
5051
- [key: string]: unknown;
5052
- } | null;
5187
+ pctOfInvestedAssets?: string | null;
5053
5188
  /**
5054
5189
  * Cumulative realized P&L on sold lots (asOf-date cutoff); null when the method has no applicable sells, a sell lacks a price, or any required FX rate is missing (never-mix). When a sell spans multiple currencies (cross-currency sale), amount and currency reflect the base currency; baseCcyEquivalent is always the authoritative dual-FX figure
5055
5190
  */
@@ -5064,20 +5199,14 @@ type HoldingPnlWarningDto = {
5064
5199
  * Warning type
5065
5200
  */
5066
5201
  type: 'MISSING_COST_FX_RATE' | 'MISSING_MARKET_FX_RATE' | 'MISSING_SALE_PRICE' | 'MISSING_REALIZED_FX_RATE' | 'OVERSOLD_LOTS' | 'NO_PRICE' | 'MIXED_COST_CURRENCY';
5067
- symbol?: {
5068
- [key: string]: unknown;
5069
- } | null;
5070
- accountId?: {
5071
- [key: string]: unknown;
5072
- } | null;
5073
- currency?: {
5074
- [key: string]: unknown;
5075
- } | null;
5202
+ symbol?: string | null;
5203
+ accountId?: string | null;
5204
+ currency?: string | null;
5076
5205
  };
5077
5206
  /**
5078
5207
  * Warning type
5079
5208
  */
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';
5209
+ type type5 = 'MISSING_COST_FX_RATE' | 'MISSING_MARKET_FX_RATE' | 'MISSING_SALE_PRICE' | 'MISSING_REALIZED_FX_RATE' | 'OVERSOLD_LOTS' | 'NO_PRICE' | 'MIXED_COST_CURRENCY';
5081
5210
  type HoldingPnlResponseDto = {
5082
5211
  asOfDate: string;
5083
5212
  baseCurrency: string;
@@ -5104,131 +5233,162 @@ type AnonymousLoginResponseDto = {
5104
5233
  */
5105
5234
  authToken: string;
5106
5235
  };
5236
+ type ParserContributionMetaDto = {
5237
+ /**
5238
+ * Institution slug (lowercase kebab-case)
5239
+ */
5240
+ institution: string;
5241
+ region: 'cn' | 'us' | 'de' | 'fr' | 'gb' | 'hk' | 'jp' | 'sg' | 'au' | 'ca' | 'other';
5242
+ accountType: 'checking' | 'savings' | 'credit' | 'debit' | 'investment';
5243
+ format: 'csv' | 'xlsx' | 'pdf' | 'ofx' | 'qif';
5244
+ institutionDisplayName?: string;
5245
+ encoding?: string;
5246
+ /**
5247
+ * CSV delimiter character: ",", ";", "\t" or "|"
5248
+ */
5249
+ delimiter?: string;
5250
+ /**
5251
+ * Header row count; the client omits the field when it is 1
5252
+ */
5253
+ headerRows?: number;
5254
+ notes?: string;
5255
+ };
5256
+ type region = 'cn' | 'us' | 'de' | 'fr' | 'gb' | 'hk' | 'jp' | 'sg' | 'au' | 'ca' | 'other';
5257
+ type accountType = 'checking' | 'savings' | 'credit' | 'debit' | 'investment';
5258
+ type format = 'csv' | 'xlsx' | 'pdf' | 'ofx' | 'qif';
5259
+ type ParserContributionSamplesDto = {
5260
+ /**
5261
+ * Client-sanitized sample rows (key = column name, value = cell)
5262
+ */
5263
+ rows: Array<{
5264
+ [key: string]: unknown;
5265
+ }>;
5266
+ rawHeaders?: Array<string>;
5267
+ };
5268
+ type FieldHintDto = {
5269
+ columnName: string;
5270
+ /**
5271
+ * Date format, e.g. yyyy-MM-dd HH:mm
5272
+ */
5273
+ format?: string;
5274
+ signConvention?: 'negative-expense' | 'positive-expense' | 'separate-columns';
5275
+ creditColumn?: string;
5276
+ debitColumn?: string;
5277
+ };
5278
+ type signConvention = 'negative-expense' | 'positive-expense' | 'separate-columns';
5279
+ type ParserContributionFieldHintsDto = {
5280
+ date: FieldHintDto;
5281
+ amount: FieldHintDto;
5282
+ description?: FieldHintDto;
5283
+ balance?: FieldHintDto;
5284
+ payee?: FieldHintDto;
5285
+ reference?: FieldHintDto;
5286
+ category?: FieldHintDto;
5287
+ };
5288
+ type ExpectedTransactionDto = {
5289
+ date: string;
5290
+ amount: number;
5291
+ description: string;
5292
+ payee?: string;
5293
+ category?: string;
5294
+ };
5295
+ type ParserContributionExamplesDto = {
5296
+ expectedTransactions: Array<ExpectedTransactionDto>;
5297
+ };
5298
+ type ParserContributionRequestDto = {
5299
+ meta: ParserContributionMetaDto;
5300
+ samples: ParserContributionSamplesDto;
5301
+ fieldHints: ParserContributionFieldHintsDto;
5302
+ /**
5303
+ * Omitted entirely by the client when empty
5304
+ */
5305
+ examples?: ParserContributionExamplesDto;
5306
+ };
5307
+ type ParserContributionRelayResponseDto = {
5308
+ issueUrl: string;
5309
+ issueNumber: number;
5310
+ };
5107
5311
  type SymbolSearchResultDto = {
5108
5312
  symbol: string;
5109
- name?: {
5110
- [key: string]: unknown;
5111
- } | null;
5112
- exchange?: {
5113
- [key: string]: unknown;
5114
- } | null;
5313
+ name?: string | null;
5314
+ exchange?: string | null;
5115
5315
  /**
5116
5316
  * OpenBB asset_type (e.g. stock, etf)
5117
5317
  */
5118
- assetType?: {
5119
- [key: string]: unknown;
5120
- } | null;
5318
+ assetType?: string | null;
5121
5319
  /**
5122
5320
  * IGN asset class (region.types.ts ASSET_CLASSES)
5123
5321
  */
5124
- assetClass?: {
5125
- [key: string]: unknown;
5126
- } | null;
5322
+ assetClass?: string | null;
5127
5323
  /**
5128
5324
  * IGN asset sub-class (region.types.ts ASSET_SUB_CLASSES)
5129
5325
  */
5130
- assetSubClass?: {
5131
- [key: string]: unknown;
5132
- } | null;
5326
+ assetSubClass?: string | null;
5133
5327
  /**
5134
5328
  * Trading currency (extra_data or inferred from exchange)
5135
5329
  */
5136
- currency?: {
5137
- [key: string]: unknown;
5138
- } | null;
5330
+ currency?: string | null;
5139
5331
  };
5140
5332
  type SymbolQuoteDto = {
5141
5333
  symbol?: string;
5142
- name?: {
5143
- [key: string]: unknown;
5144
- } | null;
5145
- exchange?: {
5146
- [key: string]: unknown;
5147
- } | null;
5334
+ name?: string | null;
5335
+ exchange?: string | null;
5148
5336
  /**
5149
5337
  * OpenBB asset_type
5150
5338
  */
5151
- assetType?: {
5152
- [key: string]: unknown;
5153
- } | null;
5339
+ assetType?: string | null;
5154
5340
  /**
5155
5341
  * IGN asset class
5156
5342
  */
5157
- assetClass?: {
5158
- [key: string]: unknown;
5159
- } | null;
5343
+ assetClass?: string | null;
5160
5344
  /**
5161
5345
  * IGN asset sub-class
5162
5346
  */
5163
- assetSubClass?: {
5164
- [key: string]: unknown;
5165
- } | null;
5347
+ assetSubClass?: string | null;
5166
5348
  /**
5167
5349
  * Trading currency (extra_data or inferred from exchange)
5168
5350
  */
5169
- currency?: {
5170
- [key: string]: unknown;
5171
- } | null;
5351
+ currency?: string | null;
5172
5352
  /**
5173
5353
  * Latest price (Decimal string)
5174
5354
  */
5175
- price?: {
5176
- [key: string]: unknown;
5177
- } | null;
5355
+ price?: string | null;
5178
5356
  /**
5179
5357
  * Date the price was observed (ISO yyyy-MM-dd)
5180
5358
  */
5181
- priceDate?: {
5182
- [key: string]: unknown;
5183
- } | null;
5359
+ priceDate?: string | null;
5184
5360
  /**
5185
5361
  * Change vs previous close, in percentage points (1.7 == 1.7%). openbb stores change_percent as a normalized decimal; this exposes percentage points for frontend convenience.
5186
5362
  */
5187
- changePercent?: {
5188
- [key: string]: unknown;
5189
- } | null;
5363
+ changePercent?: number | null;
5190
5364
  /**
5191
5365
  * Previous close (Decimal string)
5192
5366
  */
5193
- prevClose?: {
5194
- [key: string]: unknown;
5195
- } | null;
5367
+ prevClose?: string | null;
5196
5368
  /**
5197
5369
  * Day open (Decimal string)
5198
5370
  */
5199
- open?: {
5200
- [key: string]: unknown;
5201
- } | null;
5371
+ open?: string | null;
5202
5372
  /**
5203
5373
  * Day high (Decimal string)
5204
5374
  */
5205
- high?: {
5206
- [key: string]: unknown;
5207
- } | null;
5375
+ high?: string | null;
5208
5376
  /**
5209
5377
  * Day low (Decimal string)
5210
5378
  */
5211
- low?: {
5212
- [key: string]: unknown;
5213
- } | null;
5379
+ low?: string | null;
5214
5380
  /**
5215
5381
  * Day volume (Decimal string)
5216
5382
  */
5217
- volume?: {
5218
- [key: string]: unknown;
5219
- } | null;
5383
+ volume?: string | null;
5220
5384
  /**
5221
5385
  * 52-week high (Decimal string)
5222
5386
  */
5223
- yearHigh?: {
5224
- [key: string]: unknown;
5225
- } | null;
5387
+ yearHigh?: string | null;
5226
5388
  /**
5227
5389
  * 52-week low (Decimal string)
5228
5390
  */
5229
- yearLow?: {
5230
- [key: string]: unknown;
5231
- } | null;
5391
+ yearLow?: string | null;
5232
5392
  };
5233
5393
  type AccountControllerCreateData = {
5234
5394
  /**
@@ -5341,11 +5501,11 @@ type AccountControllerAddOpeningBalanceData = {
5341
5501
  type AccountControllerAddOpeningBalanceResponse = OpeningBalanceResultDto;
5342
5502
  type AccountStandardsControllerGetTemplatesData = {
5343
5503
  /**
5344
- * Region code (cn, us, de)
5504
+ * Region code (any ISO alpha-2; not-yet-open codes return the universal-only catalog)
5345
5505
  */
5346
- region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
5506
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'ar' | 'at' | 'au' | 'az' | 'ba' | 'bb' | 'bd' | 'be' | 'bf' | 'bg' | 'bh' | 'bi' | 'bj' | 'bn' | 'bo' | 'br' | 'bs' | 'bt' | 'bw' | 'by' | 'bz' | 'ca' | 'cd' | 'cf' | 'cg' | 'ch' | 'ci' | 'cl' | 'cm' | 'cn' | 'co' | 'cr' | 'cu' | 'cv' | 'cy' | 'cz' | 'de' | 'dj' | 'dk' | 'dm' | 'do' | 'dz' | 'ec' | 'ee' | 'eg' | 'er' | 'es' | 'et' | 'fj' | 'fm' | 'fr' | 'ga' | 'gb' | 'gd' | 'ge' | 'gh' | 'gm' | 'gn' | 'gq' | 'gr' | 'gt' | 'gw' | 'gy' | 'hk' | 'hn' | 'hr' | 'ht' | 'hu' | 'id' | 'ie' | 'il' | 'in' | 'iq' | 'ir' | 'is' | 'it' | 'jm' | 'jo' | 'jp' | 'ke' | 'kg' | 'kh' | 'ki' | 'km' | 'kn' | 'kr' | 'kw' | 'kz' | 'la' | 'lb' | 'lc' | 'li' | 'lk' | 'lr' | 'ls' | 'lt' | 'lu' | 'lv' | 'ly' | 'ma' | 'mc' | 'md' | 'me' | 'mg' | 'mh' | 'mk' | 'ml' | 'mm' | 'mn' | 'mr' | 'mt' | 'mu' | 'mv' | 'mw' | 'mx' | 'mz' | 'na' | 'ne' | 'ng' | 'ni' | 'nl' | 'no' | 'np' | 'nr' | 'nz' | 'om' | 'pa' | 'pe' | 'pg' | 'ph' | 'pk' | 'pl' | 'ps' | 'pt' | 'pw' | 'py' | 'qa' | 'ro' | 'rs' | 'ru' | 'rw' | 'sa' | 'sb' | 'sc' | 'sd' | 'se' | 'sg' | 'sl' | 'sm' | 'sn' | 'so' | 'sr' | 'st' | 'sv' | 'sy' | 'sz' | 'td' | 'tg' | 'th' | 'tj' | 'tl' | 'tm' | 'tn' | 'to' | 'tr' | 'tt' | 'tv' | 'tw' | 'tz' | 'ua' | 'ug' | 'us' | 'uy' | 'uz' | 'va' | 'vc' | 've' | 'vn' | 'vu' | 'ws' | 'ye' | 'za' | 'zm' | 'zw';
5347
5507
  /**
5348
- * Search term for path or description
5508
+ * Search term for path, description, aliases, or localized display name
5349
5509
  */
5350
5510
  search?: string;
5351
5511
  /**
@@ -5360,16 +5520,16 @@ type AccountStandardsControllerGetTemplateMetadataData = {
5360
5520
  */
5361
5521
  path: string;
5362
5522
  /**
5363
- * Region code for tenant context
5523
+ * Region code for tenant context. Not-yet-open codes degrade to the universal-only catalog (#759)
5364
5524
  */
5365
- region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
5525
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'ar' | 'at' | 'au' | 'az' | 'ba' | 'bb' | 'bd' | 'be' | 'bf' | 'bg' | 'bh' | 'bi' | 'bj' | 'bn' | 'bo' | 'br' | 'bs' | 'bt' | 'bw' | 'by' | 'bz' | 'ca' | 'cd' | 'cf' | 'cg' | 'ch' | 'ci' | 'cl' | 'cm' | 'cn' | 'co' | 'cr' | 'cu' | 'cv' | 'cy' | 'cz' | 'de' | 'dj' | 'dk' | 'dm' | 'do' | 'dz' | 'ec' | 'ee' | 'eg' | 'er' | 'es' | 'et' | 'fj' | 'fm' | 'fr' | 'ga' | 'gb' | 'gd' | 'ge' | 'gh' | 'gm' | 'gn' | 'gq' | 'gr' | 'gt' | 'gw' | 'gy' | 'hk' | 'hn' | 'hr' | 'ht' | 'hu' | 'id' | 'ie' | 'il' | 'in' | 'iq' | 'ir' | 'is' | 'it' | 'jm' | 'jo' | 'jp' | 'ke' | 'kg' | 'kh' | 'ki' | 'km' | 'kn' | 'kr' | 'kw' | 'kz' | 'la' | 'lb' | 'lc' | 'li' | 'lk' | 'lr' | 'ls' | 'lt' | 'lu' | 'lv' | 'ly' | 'ma' | 'mc' | 'md' | 'me' | 'mg' | 'mh' | 'mk' | 'ml' | 'mm' | 'mn' | 'mr' | 'mt' | 'mu' | 'mv' | 'mw' | 'mx' | 'mz' | 'na' | 'ne' | 'ng' | 'ni' | 'nl' | 'no' | 'np' | 'nr' | 'nz' | 'om' | 'pa' | 'pe' | 'pg' | 'ph' | 'pk' | 'pl' | 'ps' | 'pt' | 'pw' | 'py' | 'qa' | 'ro' | 'rs' | 'ru' | 'rw' | 'sa' | 'sb' | 'sc' | 'sd' | 'se' | 'sg' | 'sl' | 'sm' | 'sn' | 'so' | 'sr' | 'st' | 'sv' | 'sy' | 'sz' | 'td' | 'tg' | 'th' | 'tj' | 'tl' | 'tm' | 'tn' | 'to' | 'tr' | 'tt' | 'tv' | 'tw' | 'tz' | 'ua' | 'ug' | 'us' | 'uy' | 'uz' | 'va' | 'vc' | 've' | 'vn' | 'vu' | 'ws' | 'ye' | 'za' | 'zm' | 'zw';
5366
5526
  };
5367
5527
  type AccountStandardsControllerGetTemplateMetadataResponse = TemplateMetadataResponseDto;
5368
5528
  type AccountStandardsControllerGetRegionsData = {
5369
5529
  /**
5370
- * Region code for tenant context
5530
+ * Region code for tenant context. Not-yet-open codes degrade to the universal-only catalog (#759)
5371
5531
  */
5372
- region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
5532
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'ar' | 'at' | 'au' | 'az' | 'ba' | 'bb' | 'bd' | 'be' | 'bf' | 'bg' | 'bh' | 'bi' | 'bj' | 'bn' | 'bo' | 'br' | 'bs' | 'bt' | 'bw' | 'by' | 'bz' | 'ca' | 'cd' | 'cf' | 'cg' | 'ch' | 'ci' | 'cl' | 'cm' | 'cn' | 'co' | 'cr' | 'cu' | 'cv' | 'cy' | 'cz' | 'de' | 'dj' | 'dk' | 'dm' | 'do' | 'dz' | 'ec' | 'ee' | 'eg' | 'er' | 'es' | 'et' | 'fj' | 'fm' | 'fr' | 'ga' | 'gb' | 'gd' | 'ge' | 'gh' | 'gm' | 'gn' | 'gq' | 'gr' | 'gt' | 'gw' | 'gy' | 'hk' | 'hn' | 'hr' | 'ht' | 'hu' | 'id' | 'ie' | 'il' | 'in' | 'iq' | 'ir' | 'is' | 'it' | 'jm' | 'jo' | 'jp' | 'ke' | 'kg' | 'kh' | 'ki' | 'km' | 'kn' | 'kr' | 'kw' | 'kz' | 'la' | 'lb' | 'lc' | 'li' | 'lk' | 'lr' | 'ls' | 'lt' | 'lu' | 'lv' | 'ly' | 'ma' | 'mc' | 'md' | 'me' | 'mg' | 'mh' | 'mk' | 'ml' | 'mm' | 'mn' | 'mr' | 'mt' | 'mu' | 'mv' | 'mw' | 'mx' | 'mz' | 'na' | 'ne' | 'ng' | 'ni' | 'nl' | 'no' | 'np' | 'nr' | 'nz' | 'om' | 'pa' | 'pe' | 'pg' | 'ph' | 'pk' | 'pl' | 'ps' | 'pt' | 'pw' | 'py' | 'qa' | 'ro' | 'rs' | 'ru' | 'rw' | 'sa' | 'sb' | 'sc' | 'sd' | 'se' | 'sg' | 'sl' | 'sm' | 'sn' | 'so' | 'sr' | 'st' | 'sv' | 'sy' | 'sz' | 'td' | 'tg' | 'th' | 'tj' | 'tl' | 'tm' | 'tn' | 'to' | 'tr' | 'tt' | 'tv' | 'tw' | 'tz' | 'ua' | 'ug' | 'us' | 'uy' | 'uz' | 'va' | 'vc' | 've' | 'vn' | 'vu' | 'ws' | 'ye' | 'za' | 'zm' | 'zw';
5373
5533
  };
5374
5534
  type AccountStandardsControllerGetRegionsResponse = RegionsMetadataResponseDto;
5375
5535
  type TransactionControllerCreateData = {
@@ -5389,7 +5549,7 @@ type TransactionControllerListData = {
5389
5549
  */
5390
5550
  accountId?: string;
5391
5551
  /**
5392
- * Filter by ADR-0075 functional category (Group segment); matches any posting to an Expenses/Income account whose derived Group segment equals this value
5552
+ * Filter by ADR-0075 functional category (Group segment); matches any posting to an account whose derived Group segment equals this value. Must be accompanied by flow (ADR-0126).
5393
5553
  */
5394
5554
  category?: string;
5395
5555
  /**
@@ -5400,6 +5560,10 @@ type TransactionControllerListData = {
5400
5560
  * Filter by end date (inclusive), format: YYYY-MM-DD
5401
5561
  */
5402
5562
  dateTo?: string;
5563
+ /**
5564
+ * Required when category is present (400 otherwise) and vice versa (ADR-0126). Restricts the category account set to the flow root (income → Income:, expense → Expenses:) and drives the per-leg sign normalization of row viewpointAmount and the summary. OpenAPI cannot express conditional requiredness — the pairing is enforced at runtime.
5565
+ */
5566
+ flow?: 'income' | 'expense';
5403
5567
  /**
5404
5568
  * Number of items per page (1-100, default: 20)
5405
5569
  */
@@ -5417,9 +5581,9 @@ type TransactionControllerListData = {
5417
5581
  */
5418
5582
  search?: string;
5419
5583
  /**
5420
- * Filter by transaction status
5584
+ * Filter by transaction status: single value, comma-separated multi-value (e.g. VOIDED,SUPERSEDED), or ALL to include audit rows. Defaults to ACTIVE-only (ADR-0128; previously unfiltered — breaking change).
5421
5585
  */
5422
- status?: 'ACTIVE' | 'VOIDED' | 'SUPERSEDED';
5586
+ status?: 'ACTIVE' | 'VOIDED' | 'SUPERSEDED' | 'ALL';
5423
5587
  };
5424
5588
  type TransactionControllerListResponse = TransactionListResponseDto;
5425
5589
  type TransactionControllerCreateBatchData = {
@@ -5736,7 +5900,7 @@ type PayeeProfileAdminControllerUnverifyData = {
5736
5900
  */
5737
5901
  id: string;
5738
5902
  };
5739
- type PayeeProfileAdminControllerUnverifyResponse = PayeeProfileResponseDto;
5903
+ type PayeeProfileAdminControllerUnverifyResponse = void;
5740
5904
  type CommodityControllerCreateData = {
5741
5905
  /**
5742
5906
  * Region code for tenant context
@@ -5812,6 +5976,55 @@ type CommodityControllerBulkCreateData = {
5812
5976
  region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
5813
5977
  };
5814
5978
  type CommodityControllerBulkCreateResponse = Array<CommodityResponseDto>;
5979
+ type ReportingControllerGetPortfolioTrendsData = {
5980
+ /**
5981
+ * Data granularity
5982
+ */
5983
+ granularity?: 'day' | 'week' | 'month';
5984
+ /**
5985
+ * Time period
5986
+ */
5987
+ period?: '1m' | '3m' | '6m' | '1y';
5988
+ /**
5989
+ * Region code for tenant context
5990
+ */
5991
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
5992
+ };
5993
+ type ReportingControllerGetPortfolioTrendsResponse = PortfolioTrendsResponseDto;
5994
+ type ReportingControllerGetCashFlowTrendsData = {
5995
+ /**
5996
+ * Data granularity (accepted for API symmetry; v1 returns month buckets)
5997
+ */
5998
+ granularity?: 'day' | 'week' | 'month';
5999
+ /**
6000
+ * Time period
6001
+ */
6002
+ period?: '1m' | '3m' | '6m' | '1y';
6003
+ /**
6004
+ * Region code for tenant context
6005
+ */
6006
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
6007
+ };
6008
+ type ReportingControllerGetCashFlowTrendsResponse = CashFlowTrendsResponseDto;
6009
+ type ReportingControllerGenerateSnapshotData = {
6010
+ /**
6011
+ * Region code for tenant context
6012
+ */
6013
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
6014
+ /**
6015
+ * Optional date (defaults to today)
6016
+ */
6017
+ requestBody: GenerateSnapshotBody;
6018
+ };
6019
+ type ReportingControllerGenerateSnapshotResponse = GenerateSnapshotResponse;
6020
+ type ReportingControllerBackfillSnapshotsData = {
6021
+ /**
6022
+ * Region code for tenant context
6023
+ */
6024
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
6025
+ requestBody: BackfillSnapshotsBody;
6026
+ };
6027
+ type ReportingControllerBackfillSnapshotsResponse = BackfillSnapshotsResponse;
5815
6028
  type PriceControllerCreateData = {
5816
6029
  /**
5817
6030
  * Region code for tenant context
@@ -5888,15 +6101,80 @@ type PriceControllerDeleteData = {
5888
6101
  */
5889
6102
  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';
5890
6103
  };
5891
- type PriceControllerDeleteResponse = void;
5892
- type PriceControllerBulkCreateData = {
6104
+ type PriceControllerDeleteResponse = void;
6105
+ type PriceControllerBulkCreateData = {
6106
+ /**
6107
+ * Region code for tenant context
6108
+ */
6109
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
6110
+ requestBody: Array<string>;
6111
+ };
6112
+ type PriceControllerBulkCreateResponse = Array<PriceResponseDto>;
6113
+ type UserControllerDeleteOwnUserData = {
6114
+ requestBody: DeleteOwnUserDto;
6115
+ };
6116
+ type UserControllerDeleteOwnUserResponse = void;
6117
+ type UserControllerGetUserData = {
6118
+ acceptLanguage: string;
6119
+ };
6120
+ type UserControllerGetUserResponse = UserResponseDto;
6121
+ type UserControllerSignupUserData = {
6122
+ requestBody: SignupDto;
6123
+ };
6124
+ type UserControllerSignupUserResponse = SignupResponseDto;
6125
+ type UserControllerDeleteUserData = {
6126
+ /**
6127
+ * User ID to delete
6128
+ */
6129
+ id: string;
6130
+ };
6131
+ type UserControllerDeleteUserResponse = void;
6132
+ type UserControllerGetUserInfoData = {
6133
+ /**
6134
+ * User ID
6135
+ */
6136
+ id: string;
6137
+ };
6138
+ type UserControllerGetUserInfoResponse = unknown;
6139
+ type UserControllerUpdateUserSettingData = {
6140
+ requestBody: UpdateUserSettingDto;
6141
+ };
6142
+ type UserControllerUpdateUserSettingResponse = unknown;
6143
+ type UserControllerGetAllUserSettingsByPageData = {
6144
+ /**
6145
+ * Page number
6146
+ */
6147
+ pageNo: number;
6148
+ /**
6149
+ * Page size
6150
+ */
6151
+ pageSize: number;
6152
+ };
6153
+ type UserControllerGetAllUserSettingsByPageResponse = unknown;
6154
+ type UserControllerGetAssetLiabilitySummaryResponse = unknown;
6155
+ type PropertyControllerGetAllResponse = unknown;
6156
+ type PropertyControllerGetByKeyData = {
6157
+ /**
6158
+ * Property key
6159
+ */
6160
+ key: string;
6161
+ };
6162
+ type PropertyControllerGetByKeyResponse = unknown;
6163
+ type PropertyControllerUpdateData = {
6164
+ /**
6165
+ * Property key
6166
+ */
6167
+ key: string;
6168
+ requestBody: UpdatePropertyDto;
6169
+ };
6170
+ type PropertyControllerUpdateResponse = unknown;
6171
+ type PropertyControllerDeleteData = {
5893
6172
  /**
5894
- * Region code for tenant context
6173
+ * Property key
5895
6174
  */
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>;
6175
+ key: string;
5898
6176
  };
5899
- type PriceControllerBulkCreateResponse = Array<PriceResponseDto>;
6177
+ type PropertyControllerDeleteResponse = void;
5900
6178
  type RecurringRuleControllerCreateData = {
5901
6179
  /**
5902
6180
  * Region code for tenant context
@@ -6043,7 +6321,7 @@ type ExpectedTransactionControllerUndoSkipData = {
6043
6321
  */
6044
6322
  region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
6045
6323
  };
6046
- type ExpectedTransactionControllerUndoSkipResponse = ExpectedTransactionResponseDto;
6324
+ type ExpectedTransactionControllerUndoSkipResponse = void;
6047
6325
  type ExpectedTransactionControllerConfirmMatchData = {
6048
6326
  /**
6049
6327
  * Expected transaction ID
@@ -6066,7 +6344,7 @@ type ExpectedTransactionControllerUnmatchData = {
6066
6344
  */
6067
6345
  region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
6068
6346
  };
6069
- type ExpectedTransactionControllerUnmatchResponse = unknown;
6347
+ type ExpectedTransactionControllerUnmatchResponse = void;
6070
6348
  type ExpectedTransactionControllerEnterNowData = {
6071
6349
  /**
6072
6350
  * Expected transaction ID
@@ -6090,120 +6368,6 @@ type ForecastControllerGetForecastData = {
6090
6368
  region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
6091
6369
  };
6092
6370
  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
6371
  type TransactionRuleControllerCreateData = {
6208
6372
  /**
6209
6373
  * Region code for tenant context
@@ -6426,9 +6590,9 @@ type EventControllerGetSliceData = {
6426
6590
  type EventControllerGetSliceResponse = unknown;
6427
6591
  type OnboardingControllerBootstrapData = {
6428
6592
  /**
6429
- * Region code for tenant context
6593
+ * Region code for tenant context. Not-yet-open codes are accepted: the universal catalog backs onboarding regardless of region (#759)
6430
6594
  */
6431
- region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
6595
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'ar' | 'at' | 'au' | 'az' | 'ba' | 'bb' | 'bd' | 'be' | 'bf' | 'bg' | 'bh' | 'bi' | 'bj' | 'bn' | 'bo' | 'br' | 'bs' | 'bt' | 'bw' | 'by' | 'bz' | 'ca' | 'cd' | 'cf' | 'cg' | 'ch' | 'ci' | 'cl' | 'cm' | 'cn' | 'co' | 'cr' | 'cu' | 'cv' | 'cy' | 'cz' | 'de' | 'dj' | 'dk' | 'dm' | 'do' | 'dz' | 'ec' | 'ee' | 'eg' | 'er' | 'es' | 'et' | 'fj' | 'fm' | 'fr' | 'ga' | 'gb' | 'gd' | 'ge' | 'gh' | 'gm' | 'gn' | 'gq' | 'gr' | 'gt' | 'gw' | 'gy' | 'hk' | 'hn' | 'hr' | 'ht' | 'hu' | 'id' | 'ie' | 'il' | 'in' | 'iq' | 'ir' | 'is' | 'it' | 'jm' | 'jo' | 'jp' | 'ke' | 'kg' | 'kh' | 'ki' | 'km' | 'kn' | 'kr' | 'kw' | 'kz' | 'la' | 'lb' | 'lc' | 'li' | 'lk' | 'lr' | 'ls' | 'lt' | 'lu' | 'lv' | 'ly' | 'ma' | 'mc' | 'md' | 'me' | 'mg' | 'mh' | 'mk' | 'ml' | 'mm' | 'mn' | 'mr' | 'mt' | 'mu' | 'mv' | 'mw' | 'mx' | 'mz' | 'na' | 'ne' | 'ng' | 'ni' | 'nl' | 'no' | 'np' | 'nr' | 'nz' | 'om' | 'pa' | 'pe' | 'pg' | 'ph' | 'pk' | 'pl' | 'ps' | 'pt' | 'pw' | 'py' | 'qa' | 'ro' | 'rs' | 'ru' | 'rw' | 'sa' | 'sb' | 'sc' | 'sd' | 'se' | 'sg' | 'sl' | 'sm' | 'sn' | 'so' | 'sr' | 'st' | 'sv' | 'sy' | 'sz' | 'td' | 'tg' | 'th' | 'tj' | 'tl' | 'tm' | 'tn' | 'to' | 'tr' | 'tt' | 'tv' | 'tw' | 'tz' | 'ua' | 'ug' | 'us' | 'uy' | 'uz' | 'va' | 'vc' | 've' | 'vn' | 'vu' | 'ws' | 'ye' | 'za' | 'zm' | 'zw';
6432
6596
  requestBody: OnboardingDto;
6433
6597
  };
6434
6598
  type OnboardingControllerBootstrapResponse = unknown;
@@ -6467,7 +6631,7 @@ type ReconciliationControllerHistoryData = {
6467
6631
  region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
6468
6632
  };
6469
6633
  type ReconciliationControllerHistoryResponse = Array<ReconciliationRecordDto>;
6470
- type ExportControllerExportBeancountResponse = unknown;
6634
+ type ExportControllerExportBeancountResponse = Blob | File;
6471
6635
  type FileImportControllerImportFileData = {
6472
6636
  /**
6473
6637
  * Bill file to import
@@ -6691,6 +6855,21 @@ type PlatformControllerMatchPlatformsData = {
6691
6855
  region?: string;
6692
6856
  };
6693
6857
  type PlatformControllerMatchPlatformsResponse = PlatformMatchResponseDto;
6858
+ type PlatformControllerGetPlatformStandardsData = {
6859
+ /**
6860
+ * Platform ID (from a match result)
6861
+ */
6862
+ id: string;
6863
+ /**
6864
+ * Region code (ISO 3166-1 alpha-2, case-insensitive). Required for global platforms (countryCode null) — resolved as their template region; ignored when the platform has its own countryCode.
6865
+ */
6866
+ region?: string;
6867
+ /**
6868
+ * Filter templates by account type (path first segment)
6869
+ */
6870
+ type?: 'Assets' | 'Liabilities' | 'Income' | 'Expenses' | 'Equity';
6871
+ };
6872
+ type PlatformControllerGetPlatformStandardsResponse = PlatformStandardsResponseDto;
6694
6873
  type PlatformControllerUpdateData = {
6695
6874
  /**
6696
6875
  * Platform ID
@@ -6790,6 +6969,14 @@ type AuthControllerAccessTokenLoginData = {
6790
6969
  requestBody: AnonymousLoginDto;
6791
6970
  };
6792
6971
  type AuthControllerAccessTokenLoginResponse = AnonymousLoginResponseDto;
6972
+ type ParserContributionControllerCreateData = {
6973
+ /**
6974
+ * Region code for tenant context (routing only; the institution region rides in the payload meta)
6975
+ */
6976
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
6977
+ requestBody: ParserContributionRequestDto;
6978
+ };
6979
+ type ParserContributionControllerCreateResponse = ParserContributionRelayResponseDto;
6793
6980
  type CacheControllerFlushCacheResponse = unknown;
6794
6981
  type ExchangeRateControllerGetExchangeRateData = {
6795
6982
  /**
@@ -7467,7 +7654,7 @@ type $OpenApiTs = {
7467
7654
  /**
7468
7655
  * Payee profile unverified successfully
7469
7656
  */
7470
- 200: PayeeProfileResponseDto;
7657
+ 204: void;
7471
7658
  /**
7472
7659
  * Admin access required
7473
7660
  */
@@ -7574,598 +7761,598 @@ type $OpenApiTs = {
7574
7761
  };
7575
7762
  };
7576
7763
  };
7577
- '/api/v1/{region}/bean/prices': {
7578
- post: {
7579
- req: PriceControllerCreateData;
7764
+ '/api/v1/{region}/reporting/portfolio/trends': {
7765
+ get: {
7766
+ req: ReportingControllerGetPortfolioTrendsData;
7580
7767
  res: {
7581
7768
  /**
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
7769
+ * Trends retrieved successfully
7591
7770
  */
7592
- 409: unknown;
7593
- };
7594
- };
7595
- get: {
7596
- req: PriceControllerFindAllData;
7597
- res: {
7771
+ 200: PortfolioTrendsResponseDto;
7598
7772
  /**
7599
- * Prices retrieved successfully
7773
+ * User not authenticated
7600
7774
  */
7601
- 200: PriceListResponseDto;
7775
+ 401: unknown;
7602
7776
  };
7603
7777
  };
7604
7778
  };
7605
- '/api/v1/{region}/bean/prices/{id}': {
7779
+ '/api/v1/{region}/reporting/cash-flow/trends': {
7606
7780
  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;
7781
+ req: ReportingControllerGetCashFlowTrendsData;
7621
7782
  res: {
7622
7783
  /**
7623
- * Price updated successfully
7624
- */
7625
- 200: PriceResponseDto;
7626
- /**
7627
- * Price not found
7784
+ * Cash-flow trends retrieved successfully
7628
7785
  */
7629
- 404: unknown;
7786
+ 200: CashFlowTrendsResponseDto;
7630
7787
  /**
7631
- * Updated price conflicts with existing price
7788
+ * User not authenticated
7632
7789
  */
7633
- 409: unknown;
7790
+ 401: unknown;
7634
7791
  };
7635
7792
  };
7636
- delete: {
7637
- req: PriceControllerDeleteData;
7793
+ };
7794
+ '/api/v1/{region}/reporting/snapshots/generate': {
7795
+ post: {
7796
+ req: ReportingControllerGenerateSnapshotData;
7638
7797
  res: {
7639
7798
  /**
7640
- * Price deleted successfully
7799
+ * Snapshot generated successfully
7641
7800
  */
7642
- 204: void;
7801
+ 200: GenerateSnapshotResponse;
7643
7802
  /**
7644
- * Price not found
7803
+ * Invalid date format
7645
7804
  */
7646
- 404: unknown;
7647
- };
7648
- };
7649
- };
7650
- '/api/v1/{region}/bean/prices/bulk': {
7651
- post: {
7652
- req: PriceControllerBulkCreateData;
7653
- res: {
7805
+ 400: unknown;
7654
7806
  /**
7655
- * Prices created successfully
7807
+ * User not authenticated
7656
7808
  */
7657
- 201: Array<PriceResponseDto>;
7809
+ 401: unknown;
7658
7810
  };
7659
7811
  };
7660
7812
  };
7661
- '/api/v1/{region}/bean/recurring-rules': {
7813
+ '/api/v1/{region}/reporting/snapshots/backfill': {
7662
7814
  post: {
7663
- req: RecurringRuleControllerCreateData;
7815
+ req: ReportingControllerBackfillSnapshotsData;
7664
7816
  res: {
7665
7817
  /**
7666
- * Rule created successfully
7818
+ * Backfill completed successfully
7667
7819
  */
7668
- 201: RecurringRuleResponseDto;
7820
+ 200: BackfillSnapshotsResponse;
7669
7821
  /**
7670
- * Invalid input data (e.g., autoCreate without accounts)
7822
+ * Invalid date format or range
7671
7823
  */
7672
7824
  400: unknown;
7673
7825
  /**
7674
- * Rule with same name already exists
7826
+ * User not authenticated
7675
7827
  */
7676
- 409: unknown;
7677
- };
7678
- };
7679
- get: {
7680
- req: RecurringRuleControllerFindAllData;
7681
- res: {
7828
+ 401: unknown;
7682
7829
  /**
7683
- * Rules retrieved successfully
7830
+ * Backfill already in progress for this user
7684
7831
  */
7685
- 200: Array<RecurringRuleResponseDto>;
7832
+ 409: unknown;
7686
7833
  };
7687
7834
  };
7688
7835
  };
7689
- '/api/v1/{region}/bean/recurring-rules/from-transaction/{transactionId}': {
7836
+ '/api/v1/{region}/bean/prices': {
7690
7837
  post: {
7691
- req: RecurringRuleControllerCreateFromTransactionData;
7838
+ req: PriceControllerCreateData;
7692
7839
  res: {
7693
7840
  /**
7694
- * Rule created successfully
7841
+ * Price created successfully
7842
+ */
7843
+ 201: PriceResponseDto;
7844
+ /**
7845
+ * Currency or quoteCurrency commodity not found
7695
7846
  */
7696
- 201: RecurringRuleResponseDto;
7847
+ 404: unknown;
7697
7848
  /**
7698
- * Transaction not found
7849
+ * Price already exists for this currency pair and date
7699
7850
  */
7700
- 404: ApiProblemResponseDto;
7851
+ 409: unknown;
7852
+ };
7853
+ };
7854
+ get: {
7855
+ req: PriceControllerFindAllData;
7856
+ res: {
7701
7857
  /**
7702
- * Rule with same name already exists or transaction already linked
7858
+ * Prices retrieved successfully
7703
7859
  */
7704
- 409: ApiProblemResponseDto;
7860
+ 200: PriceListResponseDto;
7705
7861
  };
7706
7862
  };
7707
7863
  };
7708
- '/api/v1/{region}/bean/recurring-rules/{id}': {
7864
+ '/api/v1/{region}/bean/prices/{id}': {
7709
7865
  get: {
7710
- req: RecurringRuleControllerFindOneData;
7866
+ req: PriceControllerFindOneData;
7711
7867
  res: {
7712
7868
  /**
7713
- * Rule retrieved successfully
7869
+ * Price retrieved successfully
7714
7870
  */
7715
- 200: RecurringRuleResponseDto;
7871
+ 200: PriceResponseDto;
7716
7872
  /**
7717
- * Rule not found
7873
+ * Price not found
7718
7874
  */
7719
7875
  404: unknown;
7720
7876
  };
7721
7877
  };
7722
- patch: {
7723
- req: RecurringRuleControllerUpdateData;
7878
+ put: {
7879
+ req: PriceControllerUpdateData;
7724
7880
  res: {
7725
7881
  /**
7726
- * Rule updated successfully
7882
+ * Price updated successfully
7727
7883
  */
7728
- 200: RecurringRuleResponseDto;
7884
+ 200: PriceResponseDto;
7729
7885
  /**
7730
- * Invalid input data
7886
+ * Price not found
7731
7887
  */
7732
- 400: unknown;
7888
+ 404: unknown;
7733
7889
  /**
7734
- * Rule not found
7890
+ * Updated price conflicts with existing price
7735
7891
  */
7736
- 404: unknown;
7892
+ 409: unknown;
7737
7893
  };
7738
7894
  };
7739
7895
  delete: {
7740
- req: RecurringRuleControllerDeleteData;
7896
+ req: PriceControllerDeleteData;
7741
7897
  res: {
7742
7898
  /**
7743
- * Rule deleted successfully
7899
+ * Price deleted successfully
7744
7900
  */
7745
7901
  204: void;
7746
7902
  /**
7747
- * Rule not found
7903
+ * Price not found
7748
7904
  */
7749
7905
  404: unknown;
7750
7906
  };
7751
7907
  };
7752
7908
  };
7753
- '/api/v1/{region}/bean/recurring-rules/{id}/stats': {
7754
- get: {
7755
- req: RecurringRuleControllerGetWithStatsData;
7909
+ '/api/v1/{region}/bean/prices/bulk': {
7910
+ post: {
7911
+ req: PriceControllerBulkCreateData;
7756
7912
  res: {
7757
7913
  /**
7758
- * Rule with stats retrieved successfully
7759
- */
7760
- 200: RecurringRuleWithStatsResponseDto;
7761
- /**
7762
- * Rule not found
7914
+ * Prices created successfully
7763
7915
  */
7764
- 404: unknown;
7916
+ 201: Array<PriceResponseDto>;
7765
7917
  };
7766
7918
  };
7767
7919
  };
7768
- '/api/v1/{region}/bean/expected-transactions': {
7769
- get: {
7770
- req: ExpectedTransactionControllerFindAllData;
7920
+ '/api/v1/users': {
7921
+ delete: {
7922
+ req: UserControllerDeleteOwnUserData;
7771
7923
  res: {
7772
7924
  /**
7773
- * Expected transactions retrieved successfully
7925
+ * User deleted successfully
7774
7926
  */
7775
- 200: ExpectedTransactionListResponseDto;
7776
- };
7777
- };
7778
- };
7779
- '/api/v1/{region}/bean/expected-transactions/overdue': {
7780
- get: {
7781
- req: ExpectedTransactionControllerFindOverdueData;
7782
- res: {
7927
+ 204: void;
7783
7928
  /**
7784
- * Overdue transactions retrieved successfully
7929
+ * Invalid access token
7785
7930
  */
7786
- 200: ExpectedTransactionListResponseDto;
7931
+ 403: unknown;
7787
7932
  };
7788
7933
  };
7789
- };
7790
- '/api/v1/{region}/bean/expected-transactions/{id}': {
7791
7934
  get: {
7792
- req: ExpectedTransactionControllerFindOneData;
7935
+ req: UserControllerGetUserData;
7793
7936
  res: {
7794
7937
  /**
7795
- * Expected transaction retrieved successfully
7796
- */
7797
- 200: ExpectedTransactionResponseDto;
7798
- /**
7799
- * Expected transaction not found
7938
+ * User retrieved successfully
7800
7939
  */
7801
- 404: unknown;
7940
+ 200: UserResponseDto;
7802
7941
  };
7803
7942
  };
7804
- };
7805
- '/api/v1/{region}/bean/expected-transactions/{id}/skip': {
7806
7943
  post: {
7807
- req: ExpectedTransactionControllerSkipData;
7944
+ req: UserControllerSignupUserData;
7808
7945
  res: {
7809
7946
  /**
7810
- * Expected transaction skipped successfully
7947
+ * User created successfully
7811
7948
  */
7812
- 200: ExpectedTransactionResponseDto;
7949
+ 201: SignupResponseDto;
7813
7950
  /**
7814
- * Cannot skip - not in PENDING status
7951
+ * Invalid Turnstile token (when Turnstile is enabled)
7815
7952
  */
7816
7953
  400: unknown;
7817
7954
  /**
7818
- * Expected transaction not found
7955
+ * User signup is disabled
7819
7956
  */
7820
- 404: unknown;
7957
+ 403: unknown;
7821
7958
  };
7822
7959
  };
7960
+ };
7961
+ '/api/v1/users/{id}': {
7823
7962
  delete: {
7824
- req: ExpectedTransactionControllerUndoSkipData;
7963
+ req: UserControllerDeleteUserData;
7825
7964
  res: {
7826
7965
  /**
7827
- * Skip undone successfully
7828
- */
7829
- 200: ExpectedTransactionResponseDto;
7830
- /**
7831
- * Cannot undo - not in SKIPPED status
7966
+ * User deleted successfully
7832
7967
  */
7833
- 400: unknown;
7968
+ 204: void;
7834
7969
  /**
7835
- * Expected transaction not found
7970
+ * Cannot delete own account or insufficient permissions
7836
7971
  */
7837
- 404: unknown;
7972
+ 403: unknown;
7838
7973
  };
7839
7974
  };
7840
7975
  };
7841
- '/api/v1/{region}/bean/expected-transactions/{id}/match': {
7842
- post: {
7843
- req: ExpectedTransactionControllerConfirmMatchData;
7976
+ '/api/v1/users/{id}/info': {
7977
+ get: {
7978
+ req: UserControllerGetUserInfoData;
7844
7979
  res: {
7845
7980
  /**
7846
- * Match confirmed successfully
7981
+ * User info retrieved successfully
7847
7982
  */
7848
7983
  200: unknown;
7849
7984
  /**
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
7985
+ * Cannot access other user info without admin permission
7859
7986
  */
7860
- 409: unknown;
7987
+ 403: unknown;
7861
7988
  };
7862
7989
  };
7863
- delete: {
7864
- req: ExpectedTransactionControllerUnmatchData;
7990
+ };
7991
+ '/api/v1/users/setting': {
7992
+ put: {
7993
+ req: UserControllerUpdateUserSettingData;
7865
7994
  res: {
7866
7995
  /**
7867
- * Match removed successfully
7996
+ * Settings updated successfully
7868
7997
  */
7869
7998
  200: unknown;
7870
7999
  /**
7871
- * Cannot unmatch - not in COMPLETED status
7872
- */
7873
- 400: unknown;
7874
- /**
7875
- * Expected transaction not found
8000
+ * Insufficient permissions
7876
8001
  */
7877
- 404: unknown;
8002
+ 403: unknown;
7878
8003
  };
7879
8004
  };
7880
8005
  };
7881
- '/api/v1/{region}/bean/expected-transactions/{id}/enter': {
7882
- post: {
7883
- req: ExpectedTransactionControllerEnterNowData;
8006
+ '/api/v1/users/settings-by-page': {
8007
+ get: {
8008
+ req: UserControllerGetAllUserSettingsByPageData;
7884
8009
  res: {
7885
8010
  /**
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
8011
+ * Settings list retrieved successfully
7895
8012
  */
7896
- 404: unknown;
8013
+ 200: unknown;
7897
8014
  };
7898
8015
  };
7899
8016
  };
7900
- '/api/v1/{region}/bean/recurring/forecast': {
8017
+ '/api/v1/users/asset-liability-summary': {
7901
8018
  get: {
7902
- req: ForecastControllerGetForecastData;
7903
8019
  res: {
7904
8020
  /**
7905
- * Forecast retrieved successfully
8021
+ * Summary retrieved successfully
7906
8022
  */
7907
- 200: ForecastResponseDto;
8023
+ 200: unknown;
7908
8024
  };
7909
8025
  };
7910
8026
  };
7911
- '/api/v1/{region}/reporting/portfolio/trends': {
8027
+ '/api/v1/admin/properties': {
7912
8028
  get: {
7913
- req: ReportingControllerGetPortfolioTrendsData;
7914
8029
  res: {
7915
8030
  /**
7916
- * Trends retrieved successfully
8031
+ * Properties retrieved successfully
7917
8032
  */
7918
- 200: PortfolioTrendsResponseDto;
8033
+ 200: unknown;
7919
8034
  /**
7920
- * User not authenticated
8035
+ * Unauthorized
7921
8036
  */
7922
8037
  401: unknown;
8038
+ /**
8039
+ * Forbidden - insufficient permissions
8040
+ */
8041
+ 403: unknown;
7923
8042
  };
7924
8043
  };
7925
8044
  };
7926
- '/api/v1/{region}/reporting/cash-flow/trends': {
8045
+ '/api/v1/admin/properties/{key}': {
7927
8046
  get: {
7928
- req: ReportingControllerGetCashFlowTrendsData;
8047
+ req: PropertyControllerGetByKeyData;
7929
8048
  res: {
7930
8049
  /**
7931
- * Cash-flow trends retrieved successfully
8050
+ * Property retrieved successfully
7932
8051
  */
7933
- 200: CashFlowTrendsResponseDto;
8052
+ 200: unknown;
7934
8053
  /**
7935
- * User not authenticated
8054
+ * Unauthorized
7936
8055
  */
7937
8056
  401: unknown;
8057
+ /**
8058
+ * Forbidden - insufficient permissions
8059
+ */
8060
+ 403: unknown;
8061
+ /**
8062
+ * Property not found
8063
+ */
8064
+ 404: unknown;
7938
8065
  };
7939
8066
  };
7940
- };
7941
- '/api/v1/{region}/reporting/snapshots/generate': {
7942
- post: {
7943
- req: ReportingControllerGenerateSnapshotData;
8067
+ put: {
8068
+ req: PropertyControllerUpdateData;
7944
8069
  res: {
7945
8070
  /**
7946
- * Snapshot generated successfully
8071
+ * Property updated successfully
7947
8072
  */
7948
- 200: GenerateSnapshotResponse;
8073
+ 200: unknown;
7949
8074
  /**
7950
- * Invalid date format
8075
+ * Unauthorized
7951
8076
  */
7952
- 400: unknown;
8077
+ 401: unknown;
7953
8078
  /**
7954
- * User not authenticated
8079
+ * Forbidden - insufficient permissions
8080
+ */
8081
+ 403: unknown;
8082
+ };
8083
+ };
8084
+ delete: {
8085
+ req: PropertyControllerDeleteData;
8086
+ res: {
8087
+ /**
8088
+ * Property deleted successfully
8089
+ */
8090
+ 204: void;
8091
+ /**
8092
+ * Unauthorized
7955
8093
  */
7956
8094
  401: unknown;
8095
+ /**
8096
+ * Forbidden - insufficient permissions
8097
+ */
8098
+ 403: unknown;
8099
+ /**
8100
+ * Property not found
8101
+ */
8102
+ 404: unknown;
7957
8103
  };
7958
8104
  };
7959
8105
  };
7960
- '/api/v1/{region}/reporting/snapshots/backfill': {
8106
+ '/api/v1/{region}/bean/recurring-rules': {
7961
8107
  post: {
7962
- req: ReportingControllerBackfillSnapshotsData;
8108
+ req: RecurringRuleControllerCreateData;
7963
8109
  res: {
7964
8110
  /**
7965
- * Backfill completed successfully
8111
+ * Rule created successfully
7966
8112
  */
7967
- 200: BackfillSnapshotsResponse;
8113
+ 201: RecurringRuleResponseDto;
7968
8114
  /**
7969
- * Invalid date format or range
8115
+ * Invalid input data (e.g., autoCreate without accounts)
7970
8116
  */
7971
8117
  400: unknown;
7972
8118
  /**
7973
- * User not authenticated
8119
+ * Rule with same name already exists
7974
8120
  */
7975
- 401: unknown;
8121
+ 409: unknown;
8122
+ };
8123
+ };
8124
+ get: {
8125
+ req: RecurringRuleControllerFindAllData;
8126
+ res: {
7976
8127
  /**
7977
- * Backfill already in progress for this user
8128
+ * Rules retrieved successfully
7978
8129
  */
7979
- 409: unknown;
8130
+ 200: Array<RecurringRuleResponseDto>;
7980
8131
  };
7981
8132
  };
7982
8133
  };
7983
- '/api/v1/users': {
7984
- delete: {
7985
- req: UserControllerDeleteOwnUserData;
8134
+ '/api/v1/{region}/bean/recurring-rules/from-transaction/{transactionId}': {
8135
+ post: {
8136
+ req: RecurringRuleControllerCreateFromTransactionData;
7986
8137
  res: {
7987
8138
  /**
7988
- * User deleted successfully
8139
+ * Rule created successfully
7989
8140
  */
7990
- 204: void;
8141
+ 201: RecurringRuleResponseDto;
7991
8142
  /**
7992
- * Invalid access token
8143
+ * Transaction not found
7993
8144
  */
7994
- 403: unknown;
8145
+ 404: ApiProblemResponseDto;
8146
+ /**
8147
+ * Rule with same name already exists or transaction already linked
8148
+ */
8149
+ 409: ApiProblemResponseDto;
7995
8150
  };
7996
8151
  };
8152
+ };
8153
+ '/api/v1/{region}/bean/recurring-rules/{id}': {
7997
8154
  get: {
7998
- req: UserControllerGetUserData;
8155
+ req: RecurringRuleControllerFindOneData;
7999
8156
  res: {
8000
8157
  /**
8001
- * User retrieved successfully
8158
+ * Rule retrieved successfully
8002
8159
  */
8003
- 200: UserResponseDto;
8160
+ 200: RecurringRuleResponseDto;
8161
+ /**
8162
+ * Rule not found
8163
+ */
8164
+ 404: unknown;
8004
8165
  };
8005
8166
  };
8006
- post: {
8007
- req: UserControllerSignupUserData;
8167
+ patch: {
8168
+ req: RecurringRuleControllerUpdateData;
8008
8169
  res: {
8009
8170
  /**
8010
- * User created successfully
8171
+ * Rule updated successfully
8011
8172
  */
8012
- 201: SignupResponseDto;
8173
+ 200: RecurringRuleResponseDto;
8013
8174
  /**
8014
- * Invalid Turnstile token (when Turnstile is enabled)
8175
+ * Invalid input data
8015
8176
  */
8016
8177
  400: unknown;
8017
8178
  /**
8018
- * User signup is disabled
8179
+ * Rule not found
8019
8180
  */
8020
- 403: unknown;
8181
+ 404: unknown;
8021
8182
  };
8022
8183
  };
8023
- };
8024
- '/api/v1/users/{id}': {
8025
8184
  delete: {
8026
- req: UserControllerDeleteUserData;
8185
+ req: RecurringRuleControllerDeleteData;
8027
8186
  res: {
8028
8187
  /**
8029
- * User deleted successfully
8188
+ * Rule deleted successfully
8030
8189
  */
8031
8190
  204: void;
8032
8191
  /**
8033
- * Cannot delete own account or insufficient permissions
8192
+ * Rule not found
8034
8193
  */
8035
- 403: unknown;
8194
+ 404: unknown;
8036
8195
  };
8037
8196
  };
8038
8197
  };
8039
- '/api/v1/users/{id}/info': {
8198
+ '/api/v1/{region}/bean/recurring-rules/{id}/stats': {
8040
8199
  get: {
8041
- req: UserControllerGetUserInfoData;
8200
+ req: RecurringRuleControllerGetWithStatsData;
8042
8201
  res: {
8043
8202
  /**
8044
- * User info retrieved successfully
8203
+ * Rule with stats retrieved successfully
8045
8204
  */
8046
- 200: unknown;
8205
+ 200: RecurringRuleWithStatsResponseDto;
8047
8206
  /**
8048
- * Cannot access other user info without admin permission
8207
+ * Rule not found
8049
8208
  */
8050
- 403: unknown;
8209
+ 404: unknown;
8051
8210
  };
8052
8211
  };
8053
8212
  };
8054
- '/api/v1/users/setting': {
8055
- put: {
8056
- req: UserControllerUpdateUserSettingData;
8213
+ '/api/v1/{region}/bean/expected-transactions': {
8214
+ get: {
8215
+ req: ExpectedTransactionControllerFindAllData;
8057
8216
  res: {
8058
8217
  /**
8059
- * Settings updated successfully
8060
- */
8061
- 200: unknown;
8062
- /**
8063
- * Insufficient permissions
8218
+ * Expected transactions retrieved successfully
8064
8219
  */
8065
- 403: unknown;
8220
+ 200: ExpectedTransactionListResponseDto;
8066
8221
  };
8067
8222
  };
8068
8223
  };
8069
- '/api/v1/users/settings-by-page': {
8224
+ '/api/v1/{region}/bean/expected-transactions/overdue': {
8070
8225
  get: {
8071
- req: UserControllerGetAllUserSettingsByPageData;
8226
+ req: ExpectedTransactionControllerFindOverdueData;
8072
8227
  res: {
8073
8228
  /**
8074
- * Settings list retrieved successfully
8229
+ * Overdue transactions retrieved successfully
8075
8230
  */
8076
- 200: unknown;
8231
+ 200: ExpectedTransactionListResponseDto;
8077
8232
  };
8078
8233
  };
8079
8234
  };
8080
- '/api/v1/users/asset-liability-summary': {
8235
+ '/api/v1/{region}/bean/expected-transactions/{id}': {
8081
8236
  get: {
8237
+ req: ExpectedTransactionControllerFindOneData;
8082
8238
  res: {
8083
8239
  /**
8084
- * Summary retrieved successfully
8240
+ * Expected transaction retrieved successfully
8085
8241
  */
8086
- 200: unknown;
8242
+ 200: ExpectedTransactionResponseDto;
8243
+ /**
8244
+ * Expected transaction not found
8245
+ */
8246
+ 404: unknown;
8087
8247
  };
8088
8248
  };
8089
8249
  };
8090
- '/api/v1/admin/properties': {
8091
- get: {
8250
+ '/api/v1/{region}/bean/expected-transactions/{id}/skip': {
8251
+ post: {
8252
+ req: ExpectedTransactionControllerSkipData;
8092
8253
  res: {
8093
8254
  /**
8094
- * Properties retrieved successfully
8255
+ * Expected transaction skipped successfully
8095
8256
  */
8096
- 200: unknown;
8257
+ 200: ExpectedTransactionResponseDto;
8097
8258
  /**
8098
- * Unauthorized
8259
+ * Cannot skip - not in PENDING status
8099
8260
  */
8100
- 401: unknown;
8261
+ 400: unknown;
8101
8262
  /**
8102
- * Forbidden - insufficient permissions
8263
+ * Expected transaction not found
8103
8264
  */
8104
- 403: unknown;
8265
+ 404: unknown;
8105
8266
  };
8106
8267
  };
8107
- };
8108
- '/api/v1/admin/properties/{key}': {
8109
- get: {
8110
- req: PropertyControllerGetByKeyData;
8268
+ delete: {
8269
+ req: ExpectedTransactionControllerUndoSkipData;
8111
8270
  res: {
8112
8271
  /**
8113
- * Property retrieved successfully
8114
- */
8115
- 200: unknown;
8116
- /**
8117
- * Unauthorized
8272
+ * Skip undone successfully
8118
8273
  */
8119
- 401: unknown;
8274
+ 204: void;
8120
8275
  /**
8121
- * Forbidden - insufficient permissions
8276
+ * Cannot undo - not in SKIPPED status
8122
8277
  */
8123
- 403: unknown;
8278
+ 400: unknown;
8124
8279
  /**
8125
- * Property not found
8280
+ * Expected transaction not found
8126
8281
  */
8127
8282
  404: unknown;
8128
8283
  };
8129
8284
  };
8130
- put: {
8131
- req: PropertyControllerUpdateData;
8285
+ };
8286
+ '/api/v1/{region}/bean/expected-transactions/{id}/match': {
8287
+ post: {
8288
+ req: ExpectedTransactionControllerConfirmMatchData;
8132
8289
  res: {
8133
8290
  /**
8134
- * Property updated successfully
8291
+ * Match confirmed successfully
8135
8292
  */
8136
8293
  200: unknown;
8137
8294
  /**
8138
- * Unauthorized
8295
+ * Cannot match - not in PENDING status
8139
8296
  */
8140
- 401: unknown;
8297
+ 400: unknown;
8141
8298
  /**
8142
- * Forbidden - insufficient permissions
8299
+ * Expected or actual transaction not found
8143
8300
  */
8144
- 403: unknown;
8301
+ 404: unknown;
8302
+ /**
8303
+ * Actual transaction already matched to another rule
8304
+ */
8305
+ 409: unknown;
8145
8306
  };
8146
8307
  };
8147
8308
  delete: {
8148
- req: PropertyControllerDeleteData;
8309
+ req: ExpectedTransactionControllerUnmatchData;
8149
8310
  res: {
8150
8311
  /**
8151
- * Property deleted successfully
8312
+ * Match removed successfully
8152
8313
  */
8153
8314
  204: void;
8154
8315
  /**
8155
- * Unauthorized
8316
+ * Cannot unmatch - not in COMPLETED status
8156
8317
  */
8157
- 401: unknown;
8318
+ 400: unknown;
8158
8319
  /**
8159
- * Forbidden - insufficient permissions
8320
+ * Expected transaction not found
8160
8321
  */
8161
- 403: unknown;
8322
+ 404: unknown;
8323
+ };
8324
+ };
8325
+ };
8326
+ '/api/v1/{region}/bean/expected-transactions/{id}/enter': {
8327
+ post: {
8328
+ req: ExpectedTransactionControllerEnterNowData;
8329
+ res: {
8162
8330
  /**
8163
- * Property not found
8331
+ * Transaction created successfully
8332
+ */
8333
+ 201: unknown;
8334
+ /**
8335
+ * Cannot enter - not in PENDING status or missing accounts
8336
+ */
8337
+ 400: unknown;
8338
+ /**
8339
+ * Expected transaction or accounts not found
8164
8340
  */
8165
8341
  404: unknown;
8166
8342
  };
8167
8343
  };
8168
8344
  };
8345
+ '/api/v1/{region}/bean/recurring/forecast': {
8346
+ get: {
8347
+ req: ForecastControllerGetForecastData;
8348
+ res: {
8349
+ /**
8350
+ * Forecast retrieved successfully
8351
+ */
8352
+ 200: ForecastResponseDto;
8353
+ };
8354
+ };
8355
+ };
8169
8356
  '/api/v1/{region}/bean/transaction-rules': {
8170
8357
  post: {
8171
8358
  req: TransactionRuleControllerCreateData;
@@ -8563,7 +8750,10 @@ type $OpenApiTs = {
8563
8750
  '/api/v1/{region}/bean/export/beancount': {
8564
8751
  get: {
8565
8752
  res: {
8566
- 200: unknown;
8753
+ /**
8754
+ * ZIP archive (application/zip) streamed as an attachment
8755
+ */
8756
+ 200: Blob | File;
8567
8757
  };
8568
8758
  };
8569
8759
  };
@@ -8944,6 +9134,17 @@ type $OpenApiTs = {
8944
9134
  };
8945
9135
  };
8946
9136
  };
9137
+ '/api/v1/bean/platforms/{id}/standards': {
9138
+ get: {
9139
+ req: PlatformControllerGetPlatformStandardsData;
9140
+ res: {
9141
+ /**
9142
+ * Resolved region plus the merged account-standard catalog of that region (groupable by productCategory client-side)
9143
+ */
9144
+ 200: PlatformStandardsResponseDto;
9145
+ };
9146
+ };
9147
+ };
8947
9148
  '/api/v1/bean/platforms/{id}': {
8948
9149
  put: {
8949
9150
  req: PlatformControllerUpdateData;
@@ -9088,10 +9289,48 @@ type $OpenApiTs = {
9088
9289
  };
9089
9290
  };
9090
9291
  };
9292
+ '/api/v1/{region}/community/parser-contributions': {
9293
+ post: {
9294
+ req: ParserContributionControllerCreateData;
9295
+ res: {
9296
+ /**
9297
+ * Issue created by the bot
9298
+ */
9299
+ 201: ParserContributionRelayResponseDto;
9300
+ /**
9301
+ * Unauthorized
9302
+ */
9303
+ 401: ApiProblemResponseDto;
9304
+ /**
9305
+ * Validation failed (institution slug, empty samples, row/cell size limits)
9306
+ */
9307
+ 422: ApiProblemResponseDto;
9308
+ /**
9309
+ * Rate limited (5 submissions per user per hour)
9310
+ */
9311
+ 429: ApiProblemResponseDto;
9312
+ /**
9313
+ * Relay not configured on this deployment — clients fall back to the clipboard flow
9314
+ */
9315
+ 501: ApiProblemResponseDto;
9316
+ /**
9317
+ * GitHub bot failure (upstream), safe to retry
9318
+ */
9319
+ 502: ApiProblemResponseDto;
9320
+ };
9321
+ };
9322
+ };
9091
9323
  '/api/v1/cache/flush': {
9092
9324
  post: {
9093
9325
  res: {
9094
- 201: unknown;
9326
+ /**
9327
+ * Cache flushed successfully
9328
+ */
9329
+ 200: unknown;
9330
+ /**
9331
+ * Admin access required
9332
+ */
9333
+ 403: ApiProblemResponseDto;
9095
9334
  };
9096
9335
  };
9097
9336
  };
@@ -9367,10 +9606,11 @@ declare class BeanTransactionsService {
9367
9606
  * @param data.offset Number of items to skip (default: 0)
9368
9607
  * @param data.dateFrom Filter by start date (inclusive), format: YYYY-MM-DD
9369
9608
  * @param data.dateTo Filter by end date (inclusive), format: YYYY-MM-DD
9370
- * @param data.status Filter by transaction status
9609
+ * @param data.status Filter by transaction status: single value, comma-separated multi-value (e.g. VOIDED,SUPERSEDED), or ALL to include audit rows. Defaults to ACTIVE-only (ADR-0128; previously unfiltered — breaking change).
9371
9610
  * @param data.search Search in narration and payee fields (max 200 chars)
9372
9611
  * @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
9612
+ * @param data.category Filter by ADR-0075 functional category (Group segment); matches any posting to an account whose derived Group segment equals this value. Must be accompanied by flow (ADR-0126).
9613
+ * @param data.flow Required when category is present (400 otherwise) and vice versa (ADR-0126). Restricts the category account set to the flow root (income → Income:, expense → Expenses:) and drives the per-leg sign normalization of row viewpointAmount and the summary. OpenAPI cannot express conditional requiredness — the pairing is enforced at runtime.
9374
9614
  * @returns TransactionListResponseDto Transaction list
9375
9615
  * @throws ApiError
9376
9616
  */
@@ -9676,4 +9916,4 @@ type OpenAPIConfig = {
9676
9916
  };
9677
9917
  declare const OpenAPI: OpenAPIConfig;
9678
9918
 
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 };
9919
+ export { type $OpenApiTs, type AccountControllerAddOpeningBalanceData, type AccountControllerAddOpeningBalanceResponse, type AccountControllerCloseData, type AccountControllerCloseResponse, type AccountControllerCreateData, type AccountControllerCreateResponse, type AccountControllerDeleteData, type AccountControllerDeleteResponse, type AccountControllerFindAllData, type AccountControllerFindAllResponse, type AccountControllerFindOneData, type AccountControllerFindOneResponse, type AccountControllerReopenData, type AccountControllerReopenResponse, type AccountControllerUpdateData, type AccountControllerUpdateResponse, type AccountExchangeRateWarningDto, type AccountItemDto, type AccountItemWithAssetClassDto, type AccountListResponseDto, type AccountResponseDto, type AccountStandardListResponseDto, type AccountStandardResponseDto, type AccountStandardsControllerGetRegionsData, type AccountStandardsControllerGetRegionsResponse, type AccountStandardsControllerGetTemplateMetadataData, type AccountStandardsControllerGetTemplateMetadataResponse, type AccountStandardsControllerGetTemplatesData, type AccountStandardsControllerGetTemplatesResponse, type AccountsResponseDto, type AccountsSummaryDto, type ActualBalanceDto, type AmountDto, type AmountRangeDto, type AnonymousLoginDto, type AnonymousLoginResponseDto, type ApiKeysControllerCreateApiKeyResponse, type ApiProblemResponseDto, type AssertReconciliationDto, type AssetClassAccountsResponseDto, type AssetClassGroupDto, type AssetClassSummaryDto, type AuthControllerAccessTokenLoginData, type AuthControllerAccessTokenLoginResponse, type BackfillSnapshotsBody, type BackfillSnapshotsResponse, type BalanceByCurrencyDto, type BalanceControllerGetBalanceData, type BalanceControllerGetBalanceResponse, type BalanceControllerGetMultiCurrencyBalanceData, type BalanceControllerGetMultiCurrencyBalanceResponse, type BalanceResponseDto, type BatchCreateTransactionDto, type BatchResolveDto, type BatchResolveResultDto, type BatchTransactionErrorDto, type BatchTransactionResponseDto, BeanAccountsService, BeanBalancesService, BeanCommoditiesService, BeanTransactionsService, type BulkCreateRulesDto, type BulkCreateRulesResponseDto, type CacheControllerFlushCacheResponse, type CashFlowByCurrencyDto, type CashFlowPointDto, type CashFlowResponseDto, type CashFlowTrendSummaryDto, type CashFlowTrendsResponseDto, type CategoryCatalogControllerListData, type CategoryCatalogControllerListResponse, type CategoryCatalogEntryDto, type CategoryCatalogListResponseDto, type CategoryGroupDto, type ClientParsedDataDto, type CloseAccountDto, type CommodityControllerBulkCreateData, type CommodityControllerBulkCreateResponse, type CommodityControllerCreateData, type CommodityControllerCreateResponse, type CommodityControllerDeleteData, type CommodityControllerDeleteResponse, type CommodityControllerFindAllData, type CommodityControllerFindAllResponse, type CommodityControllerFindOneData, type CommodityControllerFindOneResponse, type CommodityControllerGetOrCreateData, type CommodityControllerGetOrCreateResponse, type CommodityControllerUpdateData, type CommodityControllerUpdateResponse, type CommodityListResponseDto, type CommodityResponseDto, type ComputeReconciliationDto, type ConfirmMatchDto, type ConvertedCashFlowDto, type ConvertedNetWorthDto, type CorrectTransactionDto, type CostDetailDto, type CostSpecDto, type CreateAccountDto, type CreateBeanEventDto, type CreateBeanPriceDto, type CreateCommodityDto, type CreateExternalAccountLinkDto, type CreateOpeningBalanceDto, type CreatePayeeDto, type CreatePayeeProfileDto, type CreatePlatformDto, type CreatePostingDto, type CreateRecurringRuleDto, type CreateRuleFromTransactionDto, type CreateTransactionDto, type CreateTransactionRuleDto, type CurrencyBalanceDto, type CurrentPriceDto, type DashboardControllerGetAccountsData, type DashboardControllerGetAccountsResponse, type DashboardControllerGetCashFlowData, type DashboardControllerGetCashFlowResponse, type DashboardControllerGetExpensesData, type DashboardControllerGetExpensesResponse, type DashboardControllerGetNetWorthData, type DashboardControllerGetNetWorthResponse, type DecisionOptionDto, type DeleteOwnUserDto, type EnterNowDto, type EventControllerCreateData, type EventControllerCreateResponse, type EventControllerDeleteData, type EventControllerDeleteResponse, type EventControllerFindAllData, type EventControllerFindAllResponse, type EventControllerFindOneData, type EventControllerFindOneResponse, type EventControllerGetSliceData, type EventControllerGetSliceResponse, type EventControllerUpdateData, type EventControllerUpdateResponse, type EventListResponseDto, type EventResponseDto, type ExchangeRateControllerGetExchangeRateData, type ExchangeRateControllerGetExchangeRateResponse, type ExchangeRateWarningDto, type ExpectedTransactionControllerConfirmMatchData, type ExpectedTransactionControllerConfirmMatchResponse, type ExpectedTransactionControllerEnterNowData, type ExpectedTransactionControllerEnterNowResponse, type ExpectedTransactionControllerFindAllData, type ExpectedTransactionControllerFindAllResponse, type ExpectedTransactionControllerFindOneData, type ExpectedTransactionControllerFindOneResponse, type ExpectedTransactionControllerFindOverdueData, type ExpectedTransactionControllerFindOverdueResponse, type ExpectedTransactionControllerSkipData, type ExpectedTransactionControllerSkipResponse, type ExpectedTransactionControllerUndoSkipData, type ExpectedTransactionControllerUndoSkipResponse, type ExpectedTransactionControllerUnmatchData, type ExpectedTransactionControllerUnmatchResponse, type ExpectedTransactionDto, type ExpectedTransactionListResponseDto, type ExpectedTransactionResponseDto, type ExpectedTransactionRuleDto, type ExpensesByCategoryResponseDto, type ExpensesByCategorySummaryDto, type ExportControllerExportBeancountResponse, type ExportRulesResponseDto, type ExternalAccountLinkControllerCreateData, type ExternalAccountLinkControllerCreateResponse, type ExternalAccountLinkControllerFindAllData, type ExternalAccountLinkControllerFindAllResponse, type ExternalAccountLinkControllerFindOneData, type ExternalAccountLinkControllerFindOneResponse, type ExternalAccountLinkControllerRemoveData, type ExternalAccountLinkControllerRemoveResponse, type ExternalAccountLinkListResponseDto, type ExternalAccountLinkResponseDto, type FieldHintDto, type FileImportControllerIdentifyFileData, type FileImportControllerIdentifyFileResponse, type FileImportControllerImportBeancountData, type FileImportControllerImportBeancountResponse, type FileImportControllerImportFileData, type FileImportControllerImportFileResponse, type FileImportDto, type ForecastControllerGetForecastData, type ForecastControllerGetForecastResponse, type ForecastItemDto, type ForecastResponseDto, type FxRateDto, type GenerateSnapshotBody, type GenerateSnapshotResponse, type HealthControllerCheckDatabaseResponse, type HealthControllerCheckOpenBbResponse, type HealthControllerCheckRedisResponse, type HealthControllerGetCircuitBreakersHealthResponse, type HealthControllerGetHealthResponse, type HealthControllerGetMetricsResponse, type HealthControllerResetCircuitBreakerData, type HealthControllerResetCircuitBreakerResponse, HealthService, type HoldingAssetClassAccountSliceDto, type HoldingAssetClassCrossAccountResponseDto, type HoldingPnlControllerGetHoldingPnlData, type HoldingPnlControllerGetHoldingPnlResponse, type HoldingPnlResponseDto, type HoldingPnlRowDto, type HoldingPnlWarningDto, type IdentifyResultDto, type ImportErrorDto, type ImportResultDto, type ImporterConfigControllerGetConfigData, type ImporterConfigControllerGetConfigResponse, type ImporterConfigControllerResetConfigData, type ImporterConfigControllerResetConfigResponse, type ImporterConfigControllerUpdateConfigData, type ImporterConfigControllerUpdateConfigResponse, type ImporterConfigDataDto, type ImporterConfigDto, type InfoControllerGetInfoResponse, type MapperDefaultsDto, type MonetaryDto, type MonthlyForecastDto, type MultiCurrencyBalanceResponseDto, type MultiCurrencyPointDto, type NetWorthByCurrencyDto, type NetWorthResponseDto, type NlpAccountCandidateDto, type NlpAccountConfirmationDataDto, type NlpAlternativePayeeDto, type NlpControllerClearSessionData, type NlpControllerClearSessionResponse, type NlpControllerGetSessionData, type NlpControllerGetSessionResponse, type NlpControllerProcessNaturalLanguageData, type NlpControllerProcessNaturalLanguageResponse, type NlpDefaultAccountsDto, type NlpDuplicateConfirmationDataDto, type NlpParsedDataDto, type NlpPayeeConfirmationDataDto, type NlpResponseDto, type NlpRuleConfirmationDataDto, type NlpSimilarityDto, type NlpSourceTransactionDto, type NlpSuggestedAccountDto, type NlpSuggestedAccountsDto, type NlpSuggestedPayeeDto, type NlpTargetTransactionDto, type NlpTransactionInfoDto, type OnboardingAccountDto, type OnboardingControllerBootstrapData, type OnboardingControllerBootstrapResponse, type OnboardingDto, OpenAPI, type OpenAPIConfig, type OpeningBalanceResultDto, type PadReconciliationDto, type PadResultDto, type ParserContributionControllerCreateData, type ParserContributionControllerCreateResponse, type ParserContributionExamplesDto, type ParserContributionFieldHintsDto, type ParserContributionMetaDto, type ParserContributionRelayResponseDto, type ParserContributionRequestDto, type ParserContributionSamplesDto, type ParserTelemetryReportDto, type PayeeAutocompleteResponseDto, type PayeeControllerAutocompleteData, type PayeeControllerAutocompleteResponse, type PayeeControllerCreateData, type PayeeControllerCreateResponse, type PayeeControllerDeleteData, type PayeeControllerDeleteResponse, type PayeeControllerFindAllData, type PayeeControllerFindAllResponse, type PayeeControllerFindOneData, type PayeeControllerFindOneResponse, type PayeeControllerGetTopPayeesData, type PayeeControllerGetTopPayeesResponse, type PayeeControllerUpdateData, type PayeeControllerUpdateResponse, type PayeeListResponseDto, type PayeeProfileAdminControllerCreateData, type PayeeProfileAdminControllerCreateResponse, type PayeeProfileAdminControllerDeleteData, type PayeeProfileAdminControllerDeleteResponse, type PayeeProfileAdminControllerFindAllData, type PayeeProfileAdminControllerFindAllResponse, type PayeeProfileAdminControllerFindOneData, type PayeeProfileAdminControllerFindOneResponse, type PayeeProfileAdminControllerUnverifyData, type PayeeProfileAdminControllerUnverifyResponse, type PayeeProfileAdminControllerUpdateData, type PayeeProfileAdminControllerUpdateResponse, type PayeeProfileAdminControllerVerifyData, type PayeeProfileAdminControllerVerifyResponse, type PayeeProfileListResponseDto, type PayeeProfileResponseDto, type PayeeResponseDto, type PayeeStatsResponseDto, type PlatformControllerCreateData, type PlatformControllerCreateResponse, type PlatformControllerDeleteData, type PlatformControllerDeleteResponse, type PlatformControllerFindAllResponse, type PlatformControllerGetPlatformListData, type PlatformControllerGetPlatformListResponse, type PlatformControllerGetPlatformStandardsData, type PlatformControllerGetPlatformStandardsResponse, type PlatformControllerMatchPlatformsData, type PlatformControllerMatchPlatformsResponse, type PlatformControllerUpdateData, type PlatformControllerUpdateResponse, type PlatformGroupDto, type PlatformListItemDto, type PlatformMatchResponseDto, type PlatformMatchResultDto, type PlatformStandardsPlatformDto, type PlatformStandardsResponseDto, type PortfolioTrendsResponseDto, type PostingDetailDto, type PostingResponseDto, type PriceControllerBulkCreateData, type PriceControllerBulkCreateResponse, type PriceControllerCreateData, type PriceControllerCreateResponse, type PriceControllerDeleteData, type PriceControllerDeleteResponse, type PriceControllerFindAllData, type PriceControllerFindAllResponse, type PriceControllerFindOneData, type PriceControllerFindOneResponse, type PriceControllerUpdateData, type PriceControllerUpdateResponse, type PriceListResponseDto, type PriceResponseDto, type ProcessNlpDto, type PropertyControllerDeleteData, type PropertyControllerDeleteResponse, type PropertyControllerGetAllResponse, type PropertyControllerGetByKeyData, type PropertyControllerGetByKeyResponse, type PropertyControllerUpdateData, type PropertyControllerUpdateResponse, type ProviderSyncConfigDto, type ProviderSyncControllerGetSupportedProvidersData, type ProviderSyncControllerGetSupportedProvidersResponse, type ProviderSyncControllerIsProviderSupportedData, type ProviderSyncControllerIsProviderSupportedResponse, type ProviderSyncControllerSyncData, type ProviderSyncControllerSyncResponse, type ProviderSyncDto, type ProviderSyncResponseDto, ProviderSyncService, type ReconciliationComputeResultDto, type ReconciliationControllerAssertData, type ReconciliationControllerAssertResponse, type ReconciliationControllerComputeData, type ReconciliationControllerComputeResponse, type ReconciliationControllerHistoryData, type ReconciliationControllerHistoryResponse, type ReconciliationControllerPadData, type ReconciliationControllerPadResponse, type ReconciliationRecordDto, type RecurringMatchInfoDto, type RecurringRuleControllerCreateData, type RecurringRuleControllerCreateFromTransactionData, type RecurringRuleControllerCreateFromTransactionResponse, type RecurringRuleControllerCreateResponse, type RecurringRuleControllerDeleteData, type RecurringRuleControllerDeleteResponse, type RecurringRuleControllerFindAllData, type RecurringRuleControllerFindAllResponse, type RecurringRuleControllerFindOneData, type RecurringRuleControllerFindOneResponse, type RecurringRuleControllerGetWithStatsData, type RecurringRuleControllerGetWithStatsResponse, type RecurringRuleControllerUpdateData, type RecurringRuleControllerUpdateResponse, type RecurringRuleResponseDto, type RecurringRuleWithStatsResponseDto, type RecurringSuggestionDto, type RegionConfigDto, type RegionInfoDto, type RegionsMetadataResponseDto, type ReopenAccountDto, type ReportingControllerBackfillSnapshotsData, type ReportingControllerBackfillSnapshotsResponse, type ReportingControllerGenerateSnapshotData, type ReportingControllerGenerateSnapshotResponse, type ReportingControllerGetCashFlowTrendsData, type ReportingControllerGetCashFlowTrendsResponse, type ReportingControllerGetPortfolioTrendsData, type ReportingControllerGetPortfolioTrendsResponse, type ResolveResultDto, type ResolveReviewDto, type ReviewControllerBatchResolveData, type ReviewControllerBatchResolveResponse, type ReviewControllerFindAllData, type ReviewControllerFindAllResponse, type ReviewControllerFindOneData, type ReviewControllerFindOneResponse, type ReviewControllerGetStatsData, type ReviewControllerGetStatsResponse, type ReviewControllerResolveData, type ReviewControllerResolveResponse, type ReviewControllerUndoData, type ReviewControllerUndoResponse, type ReviewDetailDto, type ReviewItemPreviewDto, type ReviewListResponseDto, type ReviewStatsDto, type ReviewSummaryDto, type RuleStatisticsResponseDto, type SignupDto, type SignupResponseDto, type SupportedProvidersResponseDto, type SymbolControllerGetQuoteData, type SymbolControllerGetQuoteResponse, type SymbolControllerSearchData, type SymbolControllerSearchResponse, type SymbolQuoteDto, type SymbolSearchResultDto, type TagSuggestionDto, type TagSuggestionsResponseDto, type TelemetryControllerGetCoverageMetricsData, type TelemetryControllerGetCoverageMetricsResponse, type TelemetryControllerReportCoverageMissData, type TelemetryControllerReportCoverageMissResponse, type TelemetryControllerReportTelemetryData, type TelemetryControllerReportTelemetryResponse, type TemplateMetadataDto, type TemplateMetadataResponseDto, type TestRuleDto, type TestRuleResponseDto, type TimeSeriesPointDto, type TransactionControllerCorrectData, type TransactionControllerCorrectResponse, type TransactionControllerCreateBatchData, type TransactionControllerCreateBatchResponse, type TransactionControllerCreateData, type TransactionControllerCreateResponse, type TransactionControllerDeleteData, type TransactionControllerDeleteResponse, type TransactionControllerGetDetailData, type TransactionControllerGetDetailResponse, type TransactionControllerListData, type TransactionControllerListResponse, type TransactionControllerSuggestTagsData, type TransactionControllerSuggestTagsResponse, type TransactionControllerUpdateData, type TransactionControllerUpdateResponse, type TransactionDetailDto, type TransactionListItemDto, type TransactionListResponseDto, type TransactionListSummaryDto, type TransactionListViewpointDto, type TransactionResponseDto, type TransactionRuleControllerBulkCreateData, type TransactionRuleControllerBulkCreateResponse, type TransactionRuleControllerCreateData, type TransactionRuleControllerCreateResponse, type TransactionRuleControllerDeleteData, type TransactionRuleControllerDeleteResponse, type TransactionRuleControllerExportData, type TransactionRuleControllerExportResponse, type TransactionRuleControllerGetDetailData, type TransactionRuleControllerGetDetailResponse, type TransactionRuleControllerGetStatisticsData, type TransactionRuleControllerGetStatisticsResponse, type TransactionRuleControllerListData, type TransactionRuleControllerListResponse, type TransactionRuleControllerTestData, type TransactionRuleControllerTestResponse, type TransactionRuleControllerUpdateData, type TransactionRuleControllerUpdateResponse, type TransactionRuleControllerValidateData, type TransactionRuleControllerValidateResponse, type TransactionRuleListResponseDto, type TransactionRuleResponseDto, type TransactionSummaryDto, type TrendSummaryDto, type UncoveredFormatMissDto, type UndoResultDto, type UpdateAccountDto, type UpdateBeanEventDto, type UpdateBeanPriceDto, type UpdateCommodityDto, type UpdateConfigDataDto, type UpdateImporterConfigDto, type UpdateMapperDefaultsDto, type UpdatePayeeDto, type UpdatePayeeProfileDto, type UpdatePlatformDto, type UpdatePropertyDto, type UpdateRecurringRuleDto, type UpdateTransactionDto, type UpdateTransactionRuleDto, type UpdateUserSettingDto, type UserControllerDeleteOwnUserData, type UserControllerDeleteOwnUserResponse, type UserControllerDeleteUserData, type UserControllerDeleteUserResponse, type UserControllerGetAllUserSettingsByPageData, type UserControllerGetAllUserSettingsByPageResponse, type UserControllerGetAssetLiabilitySummaryResponse, type UserControllerGetUserData, type UserControllerGetUserInfoData, type UserControllerGetUserInfoResponse, type UserControllerGetUserResponse, type UserControllerSignupUserData, type UserControllerSignupUserResponse, type UserControllerUpdateUserSettingData, type UserControllerUpdateUserSettingResponse, type UserResponseDto, type UserSettingsResponseDto, type ValidateRuleDto, type ValidateRuleResponseDto, type VersionedConfigDto, type accountType, type action, type action2, type assetClass, type assetSubClass, type assetSubType, type bookingMethod, type branchType, type category, type chartToken, type colorScheme, type confidenceLevel, type conflictStrategy, type dataSource, type equitySubType, type flag, type flag2, type flow, type format, type frequency, type importerId, type intent, type investmentAction, type learningSource, type liabilitySubType, type matchLogic, type matchType, type matchType2, type method, type mode, type paymentSource, type period, type productCategory, type provider, type region, type role, type scenario, type signConvention, type source, type source2, type source3, type status, type status2, type status3, type status4, type suggestedAction, type suggestedFrequency, type type, type type2, type type3, type type4, type type5, type value, type viewMode, type viewpointFlow };