@firela/api-types 0.0.0-canary.92e8f8e1 → 0.0.0-canary.98d93318

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