@lunch-money/developer-docs 2.11.0-preview.15 → 2.11.0-preview.16-no-bh

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.
@@ -2,10 +2,10 @@ openapi: 3.0.2
2
2
  info:
3
3
  title: Lunch Money API - v2
4
4
  description: |-
5
- Welcome to the Lunch Money v2 API reference. This is the **v2.11.0** spec.
6
-
7
5
  ### Introduction
8
6
 
7
+ Welcome to the Lunch Money v2 API reference. This is the **v2.11.0** spec.
8
+
9
9
  The API is available at `https://api.lunchmoney.dev/v2`. Get your access token from the [Lunch Money developers page](https://my.lunchmoney.app/developers).
10
10
 
11
11
 
@@ -78,8 +78,8 @@ tags:
78
78
  externalDocs:
79
79
  description: Learn more about crypto assets
80
80
  url: https://support.lunchmoney.app/setup/crypto
81
- - name: balance_history
82
- description: View and update historical account balances. Balance history is what drives the [Net Worth](https://my.lunchmoney.app/net-worth) views in the Lunch Money app. Balance history is generated for each account's balance on the first day of each month and can be edited in the Lunch Money app or via the API.
81
+ # - name: balance_history
82
+ # description: View and update historical account balances. Balance history is what drives the [Net Worth](https://my.lunchmoney.app/net-worth) views in the Lunch Money app. Balance history is generated for each account's balance on the first day of each month and can be edited in the Lunch Money app or via the API.
83
83
  - name: recurring_items
84
84
  description: Work with recurring items
85
85
  externalDocs:
@@ -1634,364 +1634,364 @@ components:
1634
1634
  - last_fetch
1635
1635
  - plaid_last_successful_update
1636
1636
 
1637
- balanceHistorySourceManual:
1638
- type: object
1639
- description: Source information for a manual account balance history entry.
1640
- additionalProperties: false
1641
- x-internal: true
1642
- properties:
1643
- type:
1644
- type: string
1645
- enum: [manual]
1646
- description: Identifies this entry as belonging to a manually-managed account.
1647
- manual_account_id:
1648
- type: integer
1649
- format: int32
1650
- description: ID of the manual account associated with this entry.
1651
- required:
1652
- - type
1653
- - manual_account_id
1654
-
1655
- balanceHistorySourcePlaid:
1656
- type: object
1657
- description: Source information for a Plaid-synced account balance history entry.
1658
- additionalProperties: false
1659
- x-internal: true
1660
- properties:
1661
- type:
1662
- type: string
1663
- enum: [plaid]
1664
- description: Identifies this entry as belonging to a Plaid-synced account.
1665
- plaid_account_id:
1666
- type: integer
1667
- format: int32
1668
- description: ID of the Plaid account associated with this entry.
1669
- required:
1670
- - type
1671
- - plaid_account_id
1672
-
1673
- balanceHistorySourceCryptoManual:
1674
- type: object
1675
- description: Source information for a manually-tracked cryptocurrency balance history entry.
1676
- additionalProperties: false
1677
- x-internal: true
1678
- properties:
1679
- type:
1680
- type: string
1681
- enum: [crypto_manual]
1682
- description: Identifies this entry as belonging to a manually-tracked crypto account.
1683
- crypto_manual_id:
1684
- type: integer
1685
- format: int32
1686
- description: ID of the manual crypto account associated with this entry.
1687
- symbol:
1688
- type: string
1689
- nullable: true
1690
- minLength: 1
1691
- maxLength: 25
1692
- description: Crypto symbol associated with the manual crypto account, when available.
1693
- required:
1694
- - type
1695
- - crypto_manual_id
1696
-
1697
- balanceHistorySourceCryptoSynced:
1698
- type: object
1699
- x-internal: true
1700
- description: Source information for a synced cryptocurrency balance history entry.
1701
- additionalProperties: false
1702
- properties:
1703
- type:
1704
- type: string
1705
- enum: [crypto_synced]
1706
- description: Identifies this entry as belonging to a synced crypto connection.
1707
- crypto_synced_id:
1708
- type: integer
1709
- format: int32
1710
- description: ID of the synced crypto connection associated with this entry.
1711
- symbol:
1712
- type: string
1713
- minLength: 1
1714
- maxLength: 25
1715
- description: Crypto symbol (e.g. `eth`, `btc`) identifying the specific currency within the synced account.
1716
- required:
1717
- - type
1718
- - crypto_synced_id
1719
- - symbol
1720
-
1721
- balanceHistorySourceDeleted:
1722
- type: object
1723
- x-internal: true
1724
- description: >
1725
- Source information for a balance history entry whose account has since been deleted.
1726
- Historical balances are preserved when a user chooses to keep history on account deletion.
1727
- This object contains details that can be used to display the deleted account in the UI.
1728
- The `deleted_account_id` can be passed to `PUT /v2/balance_history/deleted/{account_id}/details`
1729
- to update the archived source metadata.
1730
- additionalProperties: false
1731
- properties:
1732
- type:
1733
- type: string
1734
- enum: [deleted]
1735
- description: Identifies this entry as belonging to an account that has since been deleted.
1736
- deleted_account_id:
1737
- type: integer
1738
- format: int32
1739
- description: Identifier for the deleted account history source
1740
- name:
1741
- type: string
1742
- nullable: true
1743
- description: Archived account `name` for the deleted account source
1744
- institution_name:
1745
- type: string
1746
- nullable: true
1747
- description: Archived `institution_name` for the deleted account source
1748
- display_name:
1749
- type: string
1750
- nullable: true
1751
- description: Archived `display_name` of the deleted account
1752
- account_type:
1753
- type: string
1754
- nullable: true
1755
- description: Archived `type` of the deleted account source
1756
- subtype:
1757
- type: string
1758
- nullable: true
1759
- description: Archived `subtype`` of the deleted account source
1760
- mask:
1761
- type: string
1762
- nullable: true
1763
- description: Archived account `mask` for a deleted plaid account source
1764
- symbol:
1765
- type: string
1766
- nullable: true
1767
- minLength: 1
1768
- maxLength: 25
1769
- description: Archived `symbol` for a deleted crypto account source
1770
- required:
1771
- - type
1772
- - deleted_account_id
1773
- - name
1774
- - institution_name
1775
- - display_name
1776
- - account_type
1777
- - subtype
1778
- - mask
1779
- - symbol
1780
-
1781
- balanceHistoryAccountObject:
1782
- type: object
1783
- title: balance history for an account object
1784
- additionalProperties: false
1785
- description: Historical balance entries grouped under a single account source.
1786
- properties:
1787
- source:
1788
- description: >
1789
- Identifies the account this balance entry belongs to. The shape varies by
1790
- `source.type`. Use `source.type` to determine which account id field is present.
1791
- oneOf:
1792
- - $ref: "#/components/schemas/balanceHistorySourceManual"
1793
- - $ref: "#/components/schemas/balanceHistorySourcePlaid"
1794
- - $ref: "#/components/schemas/balanceHistorySourceCryptoManual"
1795
- - $ref: "#/components/schemas/balanceHistorySourceCryptoSynced"
1796
- - $ref: "#/components/schemas/balanceHistorySourceDeleted"
1797
- discriminator:
1798
- propertyName: type
1799
- mapping:
1800
- manual: "#/components/schemas/balanceHistorySourceManual"
1801
- plaid: "#/components/schemas/balanceHistorySourcePlaid"
1802
- crypto_manual: "#/components/schemas/balanceHistorySourceCryptoManual"
1803
- crypto_synced: "#/components/schemas/balanceHistorySourceCryptoSynced"
1804
- deleted: "#/components/schemas/balanceHistorySourceDeleted"
1805
- balances:
1806
- type: array
1807
- description: >
1808
- Monthly balance history entries for the source account. On GET responses,
1809
- this includes all entries in the requested range. On PUT upsert responses,
1810
- this includes only the entries modified by that request.
1811
- items:
1812
- $ref: "#/components/schemas/balanceHistoryObject"
1813
- required:
1814
- - source
1815
- - balances
1816
-
1817
- balanceHistoryObject:
1818
- type: object
1819
- title: balance history entry object
1820
- additionalProperties: false
1821
- x-internal: true
1822
- description: A historical balance entry for a single account on a single date.
1823
- properties:
1824
- id:
1825
- type: integer
1826
- format: int32
1827
- description: Unique identifier of this historical balance entry.
1828
- date:
1829
- type: string
1830
- format: date
1831
- description: Date of this historical balance entry in YYYY-MM-DD format. This is always the first day of a month.
1832
- balance:
1833
- type: string
1834
- pattern: ^-?\d+(\.\d{1,4})?$
1835
- description: Historical balance stored for this entry, as a numeric string with up to four decimal places. Trailing zeros and decimal places are not guaranteed in responses. For manual and Plaid accounts this is in the account currency. For crypto accounts this is in the user's primary currency.
1836
- currency:
1837
- allOf:
1838
- - $ref: "#/components/schemas/currencyEnum"
1839
- description: Currency of the stored `balance`. For crypto entries this is the user's primary currency.
1840
- to_base:
1841
- type: number
1842
- format: double
1843
- description: Historical balance converted to the user's primary currency. When the entry currency is the user's primary currency, this is the numeric value of `balance`.
1844
- crypto_balance:
1845
- type: string
1846
- nullable: true
1847
- pattern: ^-?\d+(\.\d{1,18})?$
1848
- description: Crypto quantity stored for this balance entry, when available. This may be present for crypto or deleted-account entries and is `null` otherwise.
1849
- required:
1850
- - id
1851
- - date
1852
- - balance
1853
- - currency
1854
- - to_base
1855
- - crypto_balance
1856
-
1857
- balanceHistoryListResponseObject:
1858
- type: object
1859
- additionalProperties: false
1860
- x-internal: true
1861
- properties:
1862
- balance_history:
1863
- type: array
1864
- items:
1865
- $ref: "#/components/schemas/balanceHistoryAccountObject"
1866
- required:
1867
- - balance_history
1868
-
1869
- balanceHistoryUpdateItemObject:
1870
- type: object
1871
- x-internal: true
1872
- additionalProperties: false
1873
- properties:
1874
- id:
1875
- type: integer
1876
- format: int32
1877
- description: System-defined balance history entry id. Ignored if set.
1878
- x-updatable: false
1879
- date:
1880
- type: string
1881
- format: date
1882
- description: Month to update, in YYYY-MM-DD format. This must be the first day of a month and must be in a past month.
1883
- balance:
1884
- oneOf:
1885
- - type: number
1886
- format: double
1887
- - type: string
1888
- pattern: ^-?\d+(\.\d{1,4})?$
1889
- description: Numeric value of the historical balance, up to four decimal places, as a number or string. For manual and Plaid accounts this is typically in the account currency. For crypto and deleted accounts this is typically in the user's primary currency. Do not include any special characters aside from a decimal point.
1890
- symbol:
1891
- type: string
1892
- nullable: true
1893
- minLength: 1
1894
- maxLength: 25
1895
- description: Optional for crypto balances, but if set it must match the account's symbol.
1896
- Tolerated for deleted-account balances. Do not provide this for manual or Plaid balances.
1897
- If provided when using the synced crypto path-based endpoint, this must match the symbol in the path.
1898
- x-updatable: true
1899
- crypto_balance:
1900
- type: string
1901
- nullable: true
1902
- pattern: ^-?\d+(\.\d{1,18})?$
1903
- description: Optional crypto quantity for crypto_manual, crypto_synced, and deleted balances. Do not provide this for manual or Plaid balances.
1904
- x-updatable: true
1905
- currency:
1906
- allOf:
1907
- - $ref: "#/components/schemas/currencyEnum"
1908
- description: Optional currency for this balance entry. If omitted, it defaults to the account currency for manual/Plaid accounts, or the user's primary currency for crypto/deleted accounts.
1909
- x-updatable: true
1910
- to_base:
1911
- type: number
1912
- format: double
1913
- description: System-defined historical balance converted to the user's primary currency. Ignored if set. Use `balance` to update the stored historical balance.
1914
- x-updatable: false
1915
- required:
1916
- - date
1917
- - balance
1918
-
1919
- upsertBalanceHistoryRequestObject:
1920
- type: object
1921
- x-internal: true
1922
- additionalProperties: false
1923
- properties:
1924
- balances:
1925
- type: array
1926
- minItems: 1
1927
- description: One or more monthly balance history entries to upsert
1928
- items:
1929
- $ref: "#/components/schemas/balanceHistoryUpdateItemObject"
1930
- required:
1931
- - balances
1932
-
1933
- updateBalanceHistoryDetailsRequestObject:
1934
- type: object
1935
- x-internal: true
1936
- additionalProperties: false
1937
- minProperties: 1
1938
- properties:
1939
- name:
1940
- type: string
1941
- nullable: true
1942
- description: New archived account name for the deleted account source.
1943
- institution_name:
1944
- type: string
1945
- nullable: true
1946
- description: New archived institution name for the deleted account source.
1947
- display_name:
1948
- type: string
1949
- nullable: true
1950
- description: New display name for the deleted account source.
1951
- account_type:
1952
- type: string
1953
- nullable: true
1954
- description: New archived account type for the deleted account source.
1955
- subtype:
1956
- type: string
1957
- nullable: true
1958
- description: New archived subtype for the deleted account source.
1959
- mask:
1960
- type: string
1961
- nullable: true
1962
- description: New archived account mask for the deleted account source.
1963
-
1964
- updateBalanceHistoryDetailsResponseObject:
1965
- type: object
1966
- x-internal: true
1967
- additionalProperties: false
1968
- properties:
1969
- name:
1970
- type: string
1971
- nullable: true
1972
- institution_name:
1973
- type: string
1974
- nullable: true
1975
- display_name:
1976
- type: string
1977
- nullable: true
1978
- account_type:
1979
- type: string
1980
- nullable: true
1981
- subtype:
1982
- type: string
1983
- nullable: true
1984
- mask:
1985
- type: string
1986
- nullable: true
1987
- required:
1988
- - name
1989
- - institution_name
1990
- - display_name
1991
- - account_type
1992
- - subtype
1993
- - mask
1994
-
1637
+ # balanceHistorySourceManual:
1638
+ # type: object
1639
+ # description: Source information for a manual account balance history entry.
1640
+ # additionalProperties: false
1641
+ # x-internal: true
1642
+ # properties:
1643
+ # type:
1644
+ # type: string
1645
+ # enum: [manual]
1646
+ # description: Identifies this entry as belonging to a manually-managed account.
1647
+ # manual_account_id:
1648
+ # type: integer
1649
+ # format: int32
1650
+ # description: ID of the manual account associated with this entry.
1651
+ # required:
1652
+ # - type
1653
+ # - manual_account_id
1654
+ #
1655
+ # balanceHistorySourcePlaid:
1656
+ # type: object
1657
+ # description: Source information for a Plaid-synced account balance history entry.
1658
+ # additionalProperties: false
1659
+ # x-internal: true
1660
+ # properties:
1661
+ # type:
1662
+ # type: string
1663
+ # enum: [plaid]
1664
+ # description: Identifies this entry as belonging to a Plaid-synced account.
1665
+ # plaid_account_id:
1666
+ # type: integer
1667
+ # format: int32
1668
+ # description: ID of the Plaid account associated with this entry.
1669
+ # required:
1670
+ # - type
1671
+ # - plaid_account_id
1672
+ #
1673
+ # balanceHistorySourceCryptoManual:
1674
+ # type: object
1675
+ # description: Source information for a manually-tracked cryptocurrency balance history entry.
1676
+ # additionalProperties: false
1677
+ # x-internal: true
1678
+ # properties:
1679
+ # type:
1680
+ # type: string
1681
+ # enum: [crypto_manual]
1682
+ # description: Identifies this entry as belonging to a manually-tracked crypto account.
1683
+ # crypto_manual_id:
1684
+ # type: integer
1685
+ # format: int32
1686
+ # description: ID of the manual crypto account associated with this entry.
1687
+ # symbol:
1688
+ # type: string
1689
+ # nullable: true
1690
+ # minLength: 1
1691
+ # maxLength: 25
1692
+ # description: Crypto symbol associated with the manual crypto account, when available.
1693
+ # required:
1694
+ # - type
1695
+ # - crypto_manual_id
1696
+ #
1697
+ # balanceHistorySourceCryptoSynced:
1698
+ # type: object
1699
+ # x-internal: true
1700
+ # description: Source information for a synced cryptocurrency balance history entry.
1701
+ # additionalProperties: false
1702
+ # properties:
1703
+ # type:
1704
+ # type: string
1705
+ # enum: [crypto_synced]
1706
+ # description: Identifies this entry as belonging to a synced crypto connection.
1707
+ # crypto_synced_id:
1708
+ # type: integer
1709
+ # format: int32
1710
+ # description: ID of the synced crypto connection associated with this entry.
1711
+ # symbol:
1712
+ # type: string
1713
+ # minLength: 1
1714
+ # maxLength: 25
1715
+ # description: Crypto symbol (e.g. `eth`, `btc`) identifying the specific currency within the synced account.
1716
+ # required:
1717
+ # - type
1718
+ # - crypto_synced_id
1719
+ # - symbol
1720
+ #
1721
+ # balanceHistorySourceDeleted:
1722
+ # type: object
1723
+ # x-internal: true
1724
+ # description: >
1725
+ # Source information for a balance history entry whose account has since been deleted.
1726
+ # Historical balances are preserved when a user chooses to keep history on account deletion.
1727
+ # This object contains details that can be used to display the deleted account in the UI.
1728
+ # The `deleted_account_id` can be passed to `PUT /v2/balance_history/deleted/{account_id}/details`
1729
+ # to update the archived source metadata.
1730
+ # additionalProperties: false
1731
+ # properties:
1732
+ # type:
1733
+ # type: string
1734
+ # enum: [deleted]
1735
+ # description: Identifies this entry as belonging to an account that has since been deleted.
1736
+ # deleted_account_id:
1737
+ # type: integer
1738
+ # format: int32
1739
+ # description: Identifier for the deleted account history source
1740
+ # name:
1741
+ # type: string
1742
+ # nullable: true
1743
+ # description: Archived account `name` for the deleted account source
1744
+ # institution_name:
1745
+ # type: string
1746
+ # nullable: true
1747
+ # description: Archived `institution_name` for the deleted account source
1748
+ # display_name:
1749
+ # type: string
1750
+ # nullable: true
1751
+ # description: Archived `display_name` of the deleted account
1752
+ # account_type:
1753
+ # type: string
1754
+ # nullable: true
1755
+ # description: Archived `type` of the deleted account source
1756
+ # subtype:
1757
+ # type: string
1758
+ # nullable: true
1759
+ # description: Archived `subtype`` of the deleted account source
1760
+ # mask:
1761
+ # type: string
1762
+ # nullable: true
1763
+ # description: Archived account `mask` for a deleted plaid account source
1764
+ # symbol:
1765
+ # type: string
1766
+ # nullable: true
1767
+ # minLength: 1
1768
+ # maxLength: 25
1769
+ # description: Archived `symbol` for a deleted crypto account source
1770
+ # required:
1771
+ # - type
1772
+ # - deleted_account_id
1773
+ # - name
1774
+ # - institution_name
1775
+ # - display_name
1776
+ # - account_type
1777
+ # - subtype
1778
+ # - mask
1779
+ # - symbol
1780
+ #
1781
+ # balanceHistoryAccountObject:
1782
+ # type: object
1783
+ # title: balance history for an account object
1784
+ # additionalProperties: false
1785
+ # description: Historical balance entries grouped under a single account source.
1786
+ # properties:
1787
+ # source:
1788
+ # description: >
1789
+ # Identifies the account this balance entry belongs to. The shape varies by
1790
+ # `source.type`. Use `source.type` to determine which account id field is present.
1791
+ # oneOf:
1792
+ # - $ref: "#/components/schemas/balanceHistorySourceManual"
1793
+ # - $ref: "#/components/schemas/balanceHistorySourcePlaid"
1794
+ # - $ref: "#/components/schemas/balanceHistorySourceCryptoManual"
1795
+ # - $ref: "#/components/schemas/balanceHistorySourceCryptoSynced"
1796
+ # - $ref: "#/components/schemas/balanceHistorySourceDeleted"
1797
+ # discriminator:
1798
+ # propertyName: type
1799
+ # mapping:
1800
+ # manual: "#/components/schemas/balanceHistorySourceManual"
1801
+ # plaid: "#/components/schemas/balanceHistorySourcePlaid"
1802
+ # crypto_manual: "#/components/schemas/balanceHistorySourceCryptoManual"
1803
+ # crypto_synced: "#/components/schemas/balanceHistorySourceCryptoSynced"
1804
+ # deleted: "#/components/schemas/balanceHistorySourceDeleted"
1805
+ # balances:
1806
+ # type: array
1807
+ # description: >
1808
+ # Monthly balance history entries for the source account. On GET responses,
1809
+ # this includes all entries in the requested range. On PUT upsert responses,
1810
+ # this includes only the entries modified by that request.
1811
+ # items:
1812
+ # $ref: "#/components/schemas/balanceHistoryObject"
1813
+ # required:
1814
+ # - source
1815
+ # - balances
1816
+ #
1817
+ # balanceHistoryObject:
1818
+ # type: object
1819
+ # title: balance history entry object
1820
+ # additionalProperties: false
1821
+ # x-internal: true
1822
+ # description: A historical balance entry for a single account on a single date.
1823
+ # properties:
1824
+ # id:
1825
+ # type: integer
1826
+ # format: int32
1827
+ # description: Unique identifier of this historical balance entry.
1828
+ # date:
1829
+ # type: string
1830
+ # format: date
1831
+ # description: Date of this historical balance entry in YYYY-MM-DD format. This is always the first day of a month.
1832
+ # balance:
1833
+ # type: string
1834
+ # pattern: ^-?\d+(\.\d{1,4})?$
1835
+ # description: Historical balance stored for this entry, as a numeric string with up to four decimal places. Trailing zeros and decimal places are not guaranteed in responses. For manual and Plaid accounts this is in the account currency. For crypto accounts this is in the user's primary currency.
1836
+ # currency:
1837
+ # allOf:
1838
+ # - $ref: "#/components/schemas/currencyEnum"
1839
+ # description: Currency of the stored `balance`. For crypto entries this is the user's primary currency.
1840
+ # to_base:
1841
+ # type: number
1842
+ # format: double
1843
+ # description: Historical balance converted to the user's primary currency. When the entry currency is the user's primary currency, this is the numeric value of `balance`.
1844
+ # crypto_balance:
1845
+ # type: string
1846
+ # nullable: true
1847
+ # pattern: ^-?\d+(\.\d{1,18})?$
1848
+ # description: Crypto quantity stored for this balance entry, when available. This may be present for crypto or deleted-account entries and is `null` otherwise.
1849
+ # required:
1850
+ # - id
1851
+ # - date
1852
+ # - balance
1853
+ # - currency
1854
+ # - to_base
1855
+ # - crypto_balance
1856
+ #
1857
+ # balanceHistoryListResponseObject:
1858
+ # type: object
1859
+ # additionalProperties: false
1860
+ # x-internal: true
1861
+ # properties:
1862
+ # balance_history:
1863
+ # type: array
1864
+ # items:
1865
+ # $ref: "#/components/schemas/balanceHistoryAccountObject"
1866
+ # required:
1867
+ # - balance_history
1868
+ #
1869
+ # balanceHistoryUpdateItemObject:
1870
+ # type: object
1871
+ # x-internal: true
1872
+ # additionalProperties: false
1873
+ # properties:
1874
+ # id:
1875
+ # type: integer
1876
+ # format: int32
1877
+ # description: System-defined balance history entry id. Ignored if set.
1878
+ # x-updatable: false
1879
+ # date:
1880
+ # type: string
1881
+ # format: date
1882
+ # description: Month to update, in YYYY-MM-DD format. This must be the first day of a month and must be in a past month.
1883
+ # balance:
1884
+ # oneOf:
1885
+ # - type: number
1886
+ # format: double
1887
+ # - type: string
1888
+ # pattern: ^-?\d+(\.\d{1,4})?$
1889
+ # description: Numeric value of the historical balance, up to four decimal places, as a number or string. For manual and Plaid accounts this is typically in the account currency. For crypto and deleted accounts this is typically in the user's primary currency. Do not include any special characters aside from a decimal point.
1890
+ # symbol:
1891
+ # type: string
1892
+ # nullable: true
1893
+ # minLength: 1
1894
+ # maxLength: 25
1895
+ # description: Optional for crypto balances, but if set it must match the account's symbol.
1896
+ # Tolerated for deleted-account balances. Do not provide this for manual or Plaid balances.
1897
+ # If provided when using the synced crypto path-based endpoint, this must match the symbol in the path.
1898
+ # x-updatable: true
1899
+ # crypto_balance:
1900
+ # type: string
1901
+ # nullable: true
1902
+ # pattern: ^-?\d+(\.\d{1,18})?$
1903
+ # description: Optional crypto quantity for crypto_manual, crypto_synced, and deleted balances. Do not provide this for manual or Plaid balances.
1904
+ # x-updatable: true
1905
+ # currency:
1906
+ # allOf:
1907
+ # - $ref: "#/components/schemas/currencyEnum"
1908
+ # description: Optional currency for this balance entry. If omitted, it defaults to the account currency for manual/Plaid accounts, or the user's primary currency for crypto/deleted accounts.
1909
+ # x-updatable: true
1910
+ # to_base:
1911
+ # type: number
1912
+ # format: double
1913
+ # description: System-defined historical balance converted to the user's primary currency. Ignored if set. Use `balance` to update the stored historical balance.
1914
+ # x-updatable: false
1915
+ # required:
1916
+ # - date
1917
+ # - balance
1918
+ #
1919
+ # upsertBalanceHistoryRequestObject:
1920
+ # type: object
1921
+ # x-internal: true
1922
+ # additionalProperties: false
1923
+ # properties:
1924
+ # balances:
1925
+ # type: array
1926
+ # minItems: 1
1927
+ # description: One or more monthly balance history entries to upsert
1928
+ # items:
1929
+ # $ref: "#/components/schemas/balanceHistoryUpdateItemObject"
1930
+ # required:
1931
+ # - balances
1932
+ #
1933
+ # updateBalanceHistoryDetailsRequestObject:
1934
+ # type: object
1935
+ # x-internal: true
1936
+ # additionalProperties: false
1937
+ # minProperties: 1
1938
+ # properties:
1939
+ # name:
1940
+ # type: string
1941
+ # nullable: true
1942
+ # description: New archived account name for the deleted account source.
1943
+ # institution_name:
1944
+ # type: string
1945
+ # nullable: true
1946
+ # description: New archived institution name for the deleted account source.
1947
+ # display_name:
1948
+ # type: string
1949
+ # nullable: true
1950
+ # description: New display name for the deleted account source.
1951
+ # account_type:
1952
+ # type: string
1953
+ # nullable: true
1954
+ # description: New archived account type for the deleted account source.
1955
+ # subtype:
1956
+ # type: string
1957
+ # nullable: true
1958
+ # description: New archived subtype for the deleted account source.
1959
+ # mask:
1960
+ # type: string
1961
+ # nullable: true
1962
+ # description: New archived account mask for the deleted account source.
1963
+ #
1964
+ # updateBalanceHistoryDetailsResponseObject:
1965
+ # type: object
1966
+ # x-internal: true
1967
+ # additionalProperties: false
1968
+ # properties:
1969
+ # name:
1970
+ # type: string
1971
+ # nullable: true
1972
+ # institution_name:
1973
+ # type: string
1974
+ # nullable: true
1975
+ # display_name:
1976
+ # type: string
1977
+ # nullable: true
1978
+ # account_type:
1979
+ # type: string
1980
+ # nullable: true
1981
+ # subtype:
1982
+ # type: string
1983
+ # nullable: true
1984
+ # mask:
1985
+ # type: string
1986
+ # nullable: true
1987
+ # required:
1988
+ # - name
1989
+ # - institution_name
1990
+ # - display_name
1991
+ # - account_type
1992
+ # - subtype
1993
+ # - mask
1994
+ #
1995
1995
  # The object containing information about a recurring item
1996
1996
  recurringObject:
1997
1997
  type: object
@@ -6499,977 +6499,977 @@ paths:
6499
6499
  $ref: "#/components/responses/rateLimited"
6500
6500
  "500":
6501
6501
  $ref: "#/components/responses/serverError"
6502
- /balance_history:
6503
- get:
6504
- tags:
6505
- - balance_history
6506
- summary: Get balance history
6507
- description: |-
6508
- Retrieve historical balance entries.<br><br>
6509
- Balance history is monthly. When `start_date` and `end_date` are both provided, they must be first-of-month dates. `start_date` must not be in the future, while `end_date` may be in the future. If one of `start_date` or `end_date` is provided, the other is required. If neither is provided, all available balance history is returned.<br><br>
6510
- The response groups entries by source account. Each item in `balance_history` contains a `source` object plus a `balances` array containing one balance entry per month in the requested range, or all stored entries when no range is provided.<br><br>
6511
- Historical entries for accounts that have been deleted may still be returned. These entries use `source.type: deleted` and include `deleted_account_id`, archived display fields, and account metadata on the `source` object.
6512
- operationId: getBalanceHistory
6513
- parameters:
6514
- - name: start_date
6515
- in: query
6516
- description: Optional start date for the requested history range in YYYY-MM-DD format. If set, `end_date` is also required. This must be the first day of a month and must not be in the future.
6517
- required: false
6518
- schema:
6519
- type: string
6520
- format: date
6521
- examples:
6522
- range start:
6523
- summary: Start date
6524
- value: "2026-01-01"
6525
- - name: end_date
6526
- in: query
6527
- description: Optional end date for the requested history range in YYYY-MM-DD format. If set, `start_date` is also required. This must be the first day of a month. For a single month, set this to the same first-of-month date as `start_date`.
6528
- required: false
6529
- schema:
6530
- type: string
6531
- format: date
6532
- examples:
6533
- range end:
6534
- summary: End date
6535
- value: "2026-03-01"
6536
- responses:
6537
- "200":
6538
- description: Historical balance entries for the requested date range
6539
- content:
6540
- application/json:
6541
- schema:
6542
- $ref: "#/components/schemas/balanceHistoryListResponseObject"
6543
- examples:
6544
- all account types:
6545
- value:
6546
- balance_history:
6547
- - source:
6548
- type: manual
6549
- manual_account_id: 119807
6550
- balances:
6551
- - id: 101
6552
- date: "2026-01-01"
6553
- balance: "41000.0000"
6554
- currency: usd
6555
- to_base: 41000
6556
- crypto_balance: null
6557
- - id: 102
6558
- date: "2026-02-01"
6559
- balance: "41211.8000"
6560
- currency: usd
6561
- to_base: 41211.8
6562
- crypto_balance: null
6563
- - source:
6564
- type: plaid
6565
- plaid_account_id: 119808
6566
- balances:
6567
- - id: 103
6568
- date: "2026-01-01"
6569
- balance: "5498.2800"
6570
- currency: usd
6571
- to_base: 5498.28
6572
- crypto_balance: null
6573
- - source:
6574
- type: crypto_manual
6575
- crypto_manual_id: 22001
6576
- symbol: btc
6577
- balances:
6578
- - id: 104
6579
- date: "2026-01-01"
6580
- balance: "53124.7200"
6581
- currency: usd
6582
- to_base: 53124.72
6583
- crypto_balance: "0.852341920145782301"
6584
- - source:
6585
- type: crypto_synced
6586
- crypto_synced_id: 33004
6587
- symbol: btc
6588
- balances:
6589
- - id: 105
6590
- date: "2026-01-01"
6591
- balance: "6231.2800"
6592
- currency: usd
6593
- to_base: 6231.28
6594
- crypto_balance: "0.100020003000400050"
6595
- - source:
6596
- type: deleted
6597
- deleted_account_id: 91
6598
- name: Savings
6599
- institution_name: Old Bank
6600
- display_name: Closed Savings
6601
- account_type: savings
6602
- subtype: savings
6603
- mask: "1234"
6604
- symbol: null
6605
- balances:
6606
- - id: 106
6607
- date: "2026-01-01"
6608
- balance: "1250.0000"
6609
- currency: usd
6610
- to_base: 1250
6611
- crypto_balance: null
6612
- manual account history:
6613
- value:
6614
- balance_history:
6615
- - source:
6616
- type: manual
6617
- manual_account_id: 119807
6618
- balances:
6619
- - id: 201
6620
- date: "2026-01-01"
6621
- balance: "41000.0000"
6622
- currency: usd
6623
- to_base: 41000
6624
- crypto_balance: null
6625
- - id: 202
6626
- date: "2026-02-01"
6627
- balance: "41211.8000"
6628
- currency: usd
6629
- to_base: 41211.8
6630
- crypto_balance: null
6631
- plaid account history:
6632
- value:
6633
- balance_history:
6634
- - source:
6635
- type: plaid
6636
- plaid_account_id: 119808
6637
- balances:
6638
- - id: 301
6639
- date: "2026-02-01"
6640
- balance: "5498.2800"
6641
- currency: usd
6642
- to_base: 5498.28
6643
- crypto_balance: null
6644
- synced crypto history:
6645
- value:
6646
- balance_history:
6647
- - source:
6648
- type: crypto_synced
6649
- crypto_synced_id: 33004
6650
- symbol: btc
6651
- balances:
6652
- - id: 401
6653
- date: "2026-02-01"
6654
- balance: "6231.2800"
6655
- currency: usd
6656
- to_base: 6231.28
6657
- crypto_balance: "0.100020003000400050"
6658
- deleted account history:
6659
- value:
6660
- balance_history:
6661
- - source:
6662
- type: deleted
6663
- deleted_account_id: 91
6664
- name: Savings
6665
- institution_name: Old Bank
6666
- display_name: Closed Savings
6667
- account_type: savings
6668
- subtype: savings
6669
- mask: "1234"
6670
- symbol: null
6671
- balances:
6672
- - id: 501
6673
- date: "2026-01-01"
6674
- balance: "1250.0000"
6675
- currency: usd
6676
- to_base: 1250
6677
- crypto_balance: null
6678
- "400":
6679
- description: Bad Request
6680
- content:
6681
- application/json:
6682
- schema:
6683
- $ref: "#/components/schemas/errorResponseObject"
6684
- examples:
6685
- missing paired date:
6686
- value:
6687
- message: Request Validation Failure
6688
- errors:
6689
- - errMsg: "`start_date` and `end_date` must either both be provided or both be omitted."
6690
- invalid range:
6691
- value:
6692
- message: Request Validation Failure
6693
- errors:
6694
- - errMsg: "`start_date` must be before or equal to `end_date`."
6695
- not first of month:
6696
- value:
6697
- message: Request Validation Failure
6698
- errors:
6699
- - errMsg: "`start_date` and `end_date` must both be the first day of a month."
6700
- future start date:
6701
- value:
6702
- message: Request Validation Failure
6703
- errors:
6704
- - errMsg: "`start_date` must not be in the future."
6705
- "401":
6706
- $ref: "#/components/responses/unauthorizedToken"
6707
- "429":
6708
- $ref: "#/components/responses/rateLimited"
6709
- "500":
6710
- $ref: "#/components/responses/serverError"
6711
- /balance_history/{account_type}/{account_id}:
6712
- get:
6713
- tags:
6714
- - balance_history
6715
- summary: Get balance history for an account
6716
- description: |-
6717
- Retrieve historical balance entries for one manual, Plaid, manual crypto, or deleted account. Crypto synced accounts require an additional `symbol` path parameter.<br><br>
6718
- The `account_type` path parameter identifies the type of account and the `account_id` path parameter identifies the specific id for that account type.<br><br>
6719
- When `start_date` and `end_date` are both provided, they must be first-of-month dates. `start_date` must not be in the future, while `end_date` may be in the future. If one of `start_date` or `end_date` is provided, the other is required. If neither is provided, all available history for the source is returned.
6720
- operationId: getBalanceHistoryForAccount
6721
- parameters:
6722
- - name: account_type
6723
- in: path
6724
- required: true
6725
- description: Source family to retrieve. Use `manual`, `plaid`, `crypto_manual`, or `deleted`.
6726
- schema:
6727
- type: string
6728
- enum: [manual, plaid, crypto_manual, deleted]
6729
- - name: account_id
6730
- in: path
6731
- required: true
6732
- description: Account or deleted-source identifier within the selected `account_type`.
6733
- schema:
6734
- type: integer
6735
- format: int32
6736
- - name: start_date
6737
- in: query
6738
- description: Optional start date for the requested history range in YYYY-MM-DD format. If set, `end_date` is also required. This must be the first day of a month and must not be in the future.
6739
- required: false
6740
- schema:
6741
- type: string
6742
- format: date
6743
- - name: end_date
6744
- in: query
6745
- description: Optional end date for the requested history range in YYYY-MM-DD format. If set, `start_date` is also required. This must be the first day of a month.
6746
- required: false
6747
- schema:
6748
- type: string
6749
- format: date
6750
- responses:
6751
- "200":
6752
- description: Historical balance entries for the requested source
6753
- content:
6754
- application/json:
6755
- schema:
6756
- $ref: "#/components/schemas/balanceHistoryListResponseObject"
6757
- examples:
6758
- manual account history:
6759
- value:
6760
- balance_history:
6761
- - source:
6762
- type: manual
6763
- manual_account_id: 119807
6764
- balances:
6765
- - id: 201
6766
- date: "2026-01-01"
6767
- balance: "41000.0000"
6768
- currency: usd
6769
- to_base: 41000
6770
- crypto_balance: null
6771
- - id: 202
6772
- date: "2026-02-01"
6773
- balance: "41211.8000"
6774
- currency: usd
6775
- to_base: 41211.8
6776
- crypto_balance: null
6777
- deleted account history:
6778
- value:
6779
- balance_history:
6780
- - source:
6781
- type: deleted
6782
- deleted_account_id: 91
6783
- name: Savings
6784
- institution_name: Old Bank
6785
- display_name: Closed Savings
6786
- account_type: savings
6787
- subtype: savings
6788
- mask: "1234"
6789
- symbol: null
6790
- balances:
6791
- - id: 501
6792
- date: "2026-01-01"
6793
- balance: "1250.0000"
6794
- currency: usd
6795
- to_base: 1250
6796
- crypto_balance: null
6797
- "400":
6798
- description: Bad Request
6799
- content:
6800
- application/json:
6801
- schema:
6802
- $ref: "#/components/schemas/errorResponseObject"
6803
- examples:
6804
- missing paired date:
6805
- value:
6806
- message: Request Validation Failure
6807
- errors:
6808
- - errMsg: "`start_date` and `end_date` must either both be provided or both be omitted."
6809
- invalid range:
6810
- value:
6811
- message: Request Validation Failure
6812
- errors:
6813
- - errMsg: "`start_date` must be before or equal to `end_date`."
6814
- "401":
6815
- $ref: "#/components/responses/unauthorizedToken"
6816
- "404":
6817
- description: Not Found
6818
- content:
6819
- application/json:
6820
- schema:
6821
- $ref: "#/components/schemas/errorResponseObject"
6822
- examples:
6823
- manual not found:
6824
- value:
6825
- message: Not Found
6826
- errors:
6827
- - errMsg: "There is no manual account with the id: 99999999."
6828
- deleted not found:
6829
- value:
6830
- message: Not Found
6831
- errors:
6832
- - errMsg: "Deleted balance history source 99999999 was not found."
6833
- "429":
6834
- $ref: "#/components/responses/rateLimited"
6835
- "500":
6836
- $ref: "#/components/responses/serverError"
6837
- put:
6838
- tags:
6839
- - balance_history
6840
- summary: Upsert balance history for an account
6841
- description: |-
6842
- Upsert one or more historical balance entries for a single manual, Plaid, manual crypto, or deleted account. Crypto synced accounts require an additional `symbol` path parameter.<br><br>
6843
- The `account_type` path parameter identifies the type of account and the `account_id` path parameter identifies the specific id for that account type.<br><br>
6844
- Submit one or more entries in the `balances` array. Each entry must specify a `date` and `balance` value.<br><br>
6845
- Balance history is monthly. Each entry's `date` must be the first day of a month and must be in a past month.<br><br>
6846
- `currency` may be provided for any balance entry. If omitted, it defaults to the account currency for manual/Plaid accounts, or the user's primary currency for crypto/deleted accounts.<br><br>
6847
- `symbol` may only be set when `account_type` is `crypto_manual` or `crypto_synced`. It is optional for `crypto_manual` accounts and tolerated for `deleted` accounts.<br><br>
6848
- `crypto_balance` may be provided for `crypto_manual`, `crypto_synced`, and `deleted` accounts, and is invalid for `manual` or `plaid` accounts.<br><br>
6849
- The response contains only the balance entries that were submitted in this request.
6850
- operationId: upsertBalanceHistoryForAccount
6851
- parameters:
6852
- - name: account_type
6853
- in: path
6854
- required: true
6855
- description: Source family to update. Use `manual`, `plaid`, `crypto_manual`, or `deleted`.
6856
- schema:
6857
- type: string
6858
- enum: [manual, plaid, crypto_manual, deleted]
6859
- - name: account_id
6860
- in: path
6861
- required: true
6862
- description: Account or deleted-source identifier within the selected `account_type`.
6863
- schema:
6864
- type: integer
6865
- format: int32
6866
- requestBody:
6867
- required: true
6868
- content:
6869
- application/json:
6870
- schema:
6871
- $ref: "#/components/schemas/upsertBalanceHistoryRequestObject"
6872
- examples:
6873
- manual account bulk upsert:
6874
- value:
6875
- balances:
6876
- - date: "2026-03-01"
6877
- balance: "41500.0000"
6878
- - date: "2026-04-01"
6879
- balance: "41625.5000"
6880
- crypto manual balance with symbol:
6881
- value:
6882
- balances:
6883
- - date: "2026-03-01"
6884
- balance: "56011.1200"
6885
- symbol: btc
6886
- crypto_balance: "0.852341920145782301"
6887
- deleted account bulk upsert:
6888
- value:
6889
- balances:
6890
- - date: "2026-03-01"
6891
- symbol: btc
6892
- crypto_balance: "0.020000000000000000"
6893
- currency: usd
6894
- balance: "1255"
6895
- get-shaped balance entry input:
6896
- value:
6897
- balances:
6898
- - id: 601
6899
- date: "2026-03-01"
6900
- balance: "41500.0000"
6901
- currency: usd
6902
- to_base: 41500
6903
- crypto_balance: null
6904
- responses:
6905
- "200":
6906
- description: Returns the modified balance entries only. Other historical
6907
- entries for the account are omitted from `balances`.
6908
- content:
6909
- application/json:
6910
- schema:
6911
- $ref: "#/components/schemas/balanceHistoryAccountObject"
6912
- examples:
6913
- manual account bulk upsert:
6914
- summary: Two upserted rows returned (not full account history)
6915
- value:
6916
- source:
6917
- type: manual
6918
- manual_account_id: 119807
6919
- balances:
6920
- - id: 601
6921
- date: "2026-03-01"
6922
- balance: "41500.0000"
6923
- currency: usd
6924
- to_base: 41500
6925
- crypto_balance: null
6926
- - id: 602
6927
- date: "2026-04-01"
6928
- balance: "41625.5000"
6929
- currency: usd
6930
- to_base: 41625.5
6931
- crypto_balance: null
6932
- crypto manual balance with symbol:
6933
- summary: Single upserted row returned
6934
- value:
6935
- source:
6936
- type: crypto_manual
6937
- crypto_manual_id: 22001
6938
- symbol: btc
6939
- balances:
6940
- - id: 603
6941
- date: "2026-03-01"
6942
- balance: "56011.1200"
6943
- currency: usd
6944
- to_base: 56011.12
6945
- crypto_balance: "0.852341920145782301"
6946
- deleted account bulk upsert:
6947
- summary: Single upserted row returned
6948
- value:
6949
- source:
6950
- type: deleted
6951
- deleted_account_id: 91
6952
- name: Savings
6953
- institution_name: Old Bank
6954
- display_name: Closed Savings
6955
- account_type: savings
6956
- subtype: savings
6957
- mask: "1234"
6958
- symbol: btc
6959
- balances:
6960
- - id: 504
6961
- date: "2026-03-01"
6962
- balance: "1255"
6963
- currency: usd
6964
- to_base: 1255
6965
- crypto_balance: "0.020000000000000000"
6966
- "400":
6967
- description: Bad Request. The entire request is rejected if any row in
6968
- `balances` fails validation; no rows are updated.
6969
- content:
6970
- application/json:
6971
- schema:
6972
- $ref: "#/components/schemas/errorResponseObject"
6973
- examples:
6974
- missing balances:
6975
- value:
6976
- message: Invalid Request Body
6977
- errors:
6978
- - errMsg: "Missing required property 'balances' in request body."
6979
- empty balances array:
6980
- value:
6981
- message: Invalid Request Body
6982
- errors:
6983
- - errMsg: "Invalid value for property 'balances'. Array must contain at least 1 element(s)"
6984
- invalid property:
6985
- value:
6986
- message: Invalid Request Body
6987
- errors:
6988
- - errMsg: "Invalid property 'foo' in request body."
6989
- invalid date:
6990
- value:
6991
- message: Request Validation Failure
6992
- errors:
6993
- - errMsg: "`date` must be the first day of a month."
6994
- request_balances_index: 0
6995
- code: VALIDATION_ERROR
6996
- future date:
6997
- value:
6998
- message: Request Validation Failure
6999
- errors:
7000
- - errMsg: "`date` must be in a past month."
7001
- request_balances_index: 1
7002
- crypto balance not allowed:
7003
- value:
7004
- message: Request Validation Failure
7005
- errors:
7006
- - errMsg: "`crypto_balance` may only be set when `account_type` is `crypto_manual`, `crypto_synced`, or `deleted`."
7007
- request_balances_index: 0
7008
- invalid row in bulk request:
7009
- value:
7010
- message: Request Validation Failure
7011
- errors:
7012
- - errMsg: "`symbol` may only be set when `account_type` is `crypto_manual` or `crypto_synced`."
7013
- request_balances_index: 1
7014
- "401":
7015
- $ref: "#/components/responses/unauthorizedToken"
7016
- "404":
7017
- description: Not Found
7018
- content:
7019
- application/json:
7020
- schema:
7021
- $ref: "#/components/schemas/errorResponseObject"
7022
- example:
7023
- message: Not Found
7024
- errors:
7025
- - errMsg: "There is no manual account with the id: 99999999."
7026
- "429":
7027
- $ref: "#/components/responses/rateLimited"
7028
- "500":
7029
- $ref: "#/components/responses/serverError"
7030
- delete:
7031
- tags:
7032
- - balance_history
7033
- summary: Delete all balance history for an account
7034
- description: |-
7035
- Delete all historical balance entries for a single manual, Plaid, manual crypto, or deleted account. Crypto synced accounts require an additional `symbol` path parameter.
7036
- operationId: deleteBalanceHistoryForAccount
7037
- parameters:
7038
- - name: account_type
7039
- in: path
7040
- required: true
7041
- description: Source family to delete. Use `manual`, `plaid`, `crypto_manual`, or `deleted`.
7042
- schema:
7043
- type: string
7044
- enum: [manual, plaid, crypto_manual, deleted]
7045
- - name: account_id
7046
- in: path
7047
- required: true
7048
- description: Account or deleted-source identifier within the selected `account_type`.
7049
- schema:
7050
- type: integer
7051
- format: int32
7052
- responses:
7053
- "204":
7054
- description: All history for the account/source was deleted
7055
- "401":
7056
- $ref: "#/components/responses/unauthorizedToken"
7057
- "404":
7058
- description: Not Found
7059
- content:
7060
- application/json:
7061
- schema:
7062
- $ref: "#/components/schemas/errorResponseObject"
7063
- examples:
7064
- source not found:
7065
- value:
7066
- message: Not Found
7067
- errors:
7068
- - errMsg: "There is no manual account with the id: 99999999."
7069
- "429":
7070
- $ref: "#/components/responses/rateLimited"
7071
- "500":
7072
- $ref: "#/components/responses/serverError"
7073
- /balance_history/crypto_synced/{account_id}/{symbol}:
7074
- get:
7075
- tags:
7076
- - balance_history
7077
- summary: Get balance history for a synced crypto symbol
7078
- description: |-
7079
- Retrieve historical balance entries for a single synced crypto symbol stream.<br><br>
7080
- Use the `crypto_synced` account id together with a `symbol` path parameter to select one balance stream within that synced crypto account.<br><br>
7081
- When `start_date` and `end_date` are both provided, they must be first-of-month dates. `start_date` must not be in the future, while `end_date` may be in the future. If one of `start_date` or `end_date` is provided, the other is required. If neither is provided, all available history for the symbol stream is returned.
7082
- operationId: getBalanceHistoryForCryptoSynced
7083
- parameters:
7084
- - name: account_id
7085
- in: path
7086
- required: true
7087
- description: Synced crypto account identifier.
7088
- schema:
7089
- type: integer
7090
- format: int32
7091
- - name: symbol
7092
- in: path
7093
- required: true
7094
- description: Crypto symbol identifying one balance stream within the synced crypto account.
7095
- schema:
7096
- type: string
7097
- minLength: 1
7098
- maxLength: 25
7099
- - name: start_date
7100
- in: query
7101
- description: Optional start date for the requested history range in YYYY-MM-DD format. If set, `end_date` is also required. This must be the first day of a month and must not be in the future.
7102
- required: false
7103
- schema:
7104
- type: string
7105
- format: date
7106
- - name: end_date
7107
- in: query
7108
- description: Optional end date for the requested history range in YYYY-MM-DD format. If set, `start_date` is also required. This must be the first day of a month.
7109
- required: false
7110
- schema:
7111
- type: string
7112
- format: date
7113
- responses:
7114
- "200":
7115
- description: Historical balance entries for the synced crypto symbol stream
7116
- content:
7117
- application/json:
7118
- schema:
7119
- $ref: "#/components/schemas/balanceHistoryListResponseObject"
7120
- example:
7121
- balance_history:
7122
- - source:
7123
- type: crypto_synced
7124
- crypto_synced_id: 33004
7125
- symbol: btc
7126
- balances:
7127
- - id: 401
7128
- date: "2026-02-01"
7129
- balance: "6231.2800"
7130
- currency: usd
7131
- to_base: 6231.28
7132
- crypto_balance: "0.100020003000400050"
7133
- "400":
7134
- description: Bad Request
7135
- content:
7136
- application/json:
7137
- schema:
7138
- $ref: "#/components/schemas/errorResponseObject"
7139
- examples:
7140
- missing paired date:
7141
- value:
7142
- message: Request Validation Failure
7143
- errors:
7144
- - errMsg: "`start_date` and `end_date` must either both be provided or both be omitted."
7145
- invalid range:
7146
- value:
7147
- message: Request Validation Failure
7148
- errors:
7149
- - errMsg: "`start_date` must be before or equal to `end_date`."
7150
- "401":
7151
- $ref: "#/components/responses/unauthorizedToken"
7152
- "404":
7153
- description: Not Found
7154
- content:
7155
- application/json:
7156
- schema:
7157
- $ref: "#/components/schemas/errorResponseObject"
7158
- examples:
7159
- source not found:
7160
- value:
7161
- message: Not Found
7162
- errors:
7163
- - errMsg: "There is no synced crypto account with the id: 99999999."
7164
- symbol not found:
7165
- value:
7166
- message: Not Found
7167
- errors:
7168
- - errMsg: "There is no balance history for symbol 'doge' on this account."
7169
- "429":
7170
- $ref: "#/components/responses/rateLimited"
7171
- "500":
7172
- $ref: "#/components/responses/serverError"
7173
- put:
7174
- tags:
7175
- - balance_history
7176
- summary: Upsert balance history for a synced crypto symbol
7177
- description: |-
7178
- Upsert one or more historical balance entries for a single synced crypto symbol stream.<br><br>
7179
- The path identifies both the synced crypto account and the symbol being updated.<br><br>
7180
- Submit one or more entries in the `balances` array. Each entry must specify a `date` and `balance` value.<br><br>
7181
- Balance history is monthly. Each entry's `date` must be the first day of a month and must be in a past month.<br><br>
7182
- The request body may include an optional `symbol` on each balance entry. If provided, it must match the `symbol` path parameter. Omit `symbol` to use the path value.<br><br>
7183
- `currency` may be provided for any balance entry. If omitted, it defaults to the user's primary currency for synced crypto balances.<br><br>
7184
- `crypto_balance` may be provided for synced crypto balances.<br><br>
7185
- The response contains only the balance entries that were submitted in this request.
7186
- operationId: upsertBalanceHistoryForCryptoSynced
7187
- parameters:
7188
- - name: account_id
7189
- in: path
7190
- required: true
7191
- description: Synced crypto account identifier to update.
7192
- schema:
7193
- type: integer
7194
- format: int32
7195
- - name: symbol
7196
- in: path
7197
- required: true
7198
- description: Crypto symbol identifying one balance stream within the synced crypto account.
7199
- schema:
7200
- type: string
7201
- minLength: 1
7202
- maxLength: 25
7203
- requestBody:
7204
- required: true
7205
- content:
7206
- application/json:
7207
- schema:
7208
- $ref: "#/components/schemas/upsertBalanceHistoryRequestObject"
7209
- examples:
7210
- synced crypto bulk upsert:
7211
- value:
7212
- balances:
7213
- - date: "2026-03-01"
7214
- balance: "6400.0000"
7215
- crypto_balance: "0.100020003000400050"
7216
- - date: "2026-04-01"
7217
- balance: "6500.0000"
7218
- crypto_balance: "0.100020003000400050"
7219
- responses:
7220
- "200":
7221
- description: Returns the modified balance entries only. Other historical
7222
- entries for the symbol stream are omitted from `balances`.
7223
- content:
7224
- application/json:
7225
- schema:
7226
- $ref: "#/components/schemas/balanceHistoryAccountObject"
7227
- examples:
7228
- synced crypto bulk upsert:
7229
- summary: Two upserted rows returned (not full symbol history)
7230
- value:
7231
- source:
7232
- type: crypto_synced
7233
- crypto_synced_id: 33004
7234
- symbol: btc
7235
- balances:
7236
- - id: 604
7237
- date: "2026-03-01"
7238
- balance: "6400.0000"
7239
- currency: usd
7240
- to_base: 6400
7241
- crypto_balance: "0.100020003000400050"
7242
- - id: 605
7243
- date: "2026-04-01"
7244
- balance: "6500.0000"
7245
- currency: usd
7246
- to_base: 6500
7247
- crypto_balance: "0.100020003000400050"
7248
- "400":
7249
- description: Bad Request. The entire request is rejected if any row in
7250
- `balances` fails validation; no rows are updated.
7251
- content:
7252
- application/json:
7253
- schema:
7254
- $ref: "#/components/schemas/errorResponseObject"
7255
- examples:
7256
- missing balances:
7257
- value:
7258
- message: Invalid Request Body
7259
- errors:
7260
- - errMsg: "Missing required property 'balances' in request body."
7261
- empty balances array:
7262
- value:
7263
- message: Invalid Request Body
7264
- errors:
7265
- - errMsg: "Invalid value for property 'balances'. Array must contain at least 1 element(s)"
7266
- invalid date:
7267
- value:
7268
- message: Request Validation Failure
7269
- errors:
7270
- - errMsg: "`date` must be the first day of a month."
7271
- request_balances_index: 0
7272
- future date:
7273
- value:
7274
- message: Request Validation Failure
7275
- errors:
7276
- - errMsg: "`date` must be in a past month."
7277
- request_balances_index: 1
7278
- symbol mismatch:
7279
- value:
7280
- message: Request Validation Failure
7281
- errors:
7282
- - errMsg: "`symbol` in request body (doge) does not match the path symbol (eth)."
7283
- request_balances_index: 0
7284
- invalid row in bulk request:
7285
- value:
7286
- message: Request Validation Failure
7287
- errors:
7288
- - errMsg: "`balance` must be a valid numeric string or number."
7289
- request_balances_index: 1
7290
- "401":
7291
- $ref: "#/components/responses/unauthorizedToken"
7292
- "404":
7293
- description: Not Found
7294
- content:
7295
- application/json:
7296
- schema:
7297
- $ref: "#/components/schemas/errorResponseObject"
7298
- examples:
7299
- source not found:
7300
- value:
7301
- message: Not Found
7302
- errors:
7303
- - errMsg: "There is no synced crypto account with the id: 99999999."
7304
- symbol not found:
7305
- value:
7306
- message: Not Found
7307
- errors:
7308
- - errMsg: "There is no balance history for symbol 'doge' on this account."
7309
- "429":
7310
- $ref: "#/components/responses/rateLimited"
7311
- "500":
7312
- $ref: "#/components/responses/serverError"
7313
- delete:
7314
- tags:
7315
- - balance_history
7316
- summary: Delete all balance history for a synced crypto symbol
7317
- description: |-
7318
- Delete all historical balance entries for a single synced crypto symbol stream.<br><br>
7319
- The path identifies both the synced crypto account and the symbol whose history should be deleted.
7320
- operationId: deleteBalanceHistoryForCryptoSynced
7321
- parameters:
7322
- - name: account_id
7323
- in: path
7324
- required: true
7325
- description: Synced crypto account identifier.
7326
- schema:
7327
- type: integer
7328
- format: int32
7329
- - name: symbol
7330
- in: path
7331
- required: true
7332
- description: Crypto symbol identifying one balance stream within the synced crypto account.
7333
- schema:
7334
- type: string
7335
- minLength: 1
7336
- maxLength: 25
7337
- responses:
7338
- "204":
7339
- description: All history for the synced crypto symbol stream was deleted
7340
- "401":
7341
- $ref: "#/components/responses/unauthorizedToken"
7342
- "404":
7343
- description: Not Found
7344
- content:
7345
- application/json:
7346
- schema:
7347
- $ref: "#/components/schemas/errorResponseObject"
7348
- example:
7349
- message: Not Found
7350
- errors:
7351
- - errMsg: "There is no balance history for symbol 'doge' on this account."
7352
- "429":
7353
- $ref: "#/components/responses/rateLimited"
7354
- "500":
7355
- $ref: "#/components/responses/serverError"
7356
- /balance_history/entries/{id}:
7357
- delete:
7358
- tags:
7359
- - balance_history
7360
- summary: Delete a balance history entry
7361
- description: |-
7362
- Delete a single monthly balance history entry by its id.
7363
- operationId: deleteBalanceHistoryEntry
7364
- parameters:
7365
- - name: id
7366
- in: path
7367
- required: true
7368
- description: Balance history row identifier to delete.
7369
- schema:
7370
- type: integer
7371
- format: int32
7372
- responses:
7373
- "204":
7374
- description: The balance history entry was deleted
7375
- "400":
7376
- description: Bad Request
7377
- content:
7378
- application/json:
7379
- schema:
7380
- $ref: "#/components/schemas/errorResponseObject"
7381
- example:
7382
- message: Request Validation Failure
7383
- errors:
7384
- - errMsg: "Invalid value type for path parameter: 'id'. Expected 'number', received 'string'."
7385
- "401":
7386
- $ref: "#/components/responses/unauthorizedToken"
7387
- "404":
7388
- description: Not Found
7389
- content:
7390
- application/json:
7391
- schema:
7392
- $ref: "#/components/schemas/errorResponseObject"
7393
- example:
7394
- message: Not Found
7395
- errors:
7396
- - errMsg: "There is no balance history entry with the id: 99999999."
7397
- "429":
7398
- $ref: "#/components/responses/rateLimited"
7399
- "500":
7400
- $ref: "#/components/responses/serverError"
7401
- /balance_history/deleted/{account_id}/details:
7402
- put:
7403
- tags:
7404
- - balance_history
7405
- summary: Update details for a deleted account
7406
- description: |-
7407
- Update archived metadata for a deleted balance history source.<br><br>
7408
- Pass the `deleted` source id returned on `source.deleted_account_id`. This endpoint updates the stored deleted-source metadata used for all historical entries associated with that deleted source.
7409
- operationId: updateBalanceHistoryDetails
7410
- parameters:
7411
- - name: account_id
7412
- in: path
7413
- required: true
7414
- description: Deleted account history source identifier to update.
7415
- schema:
7416
- type: integer
7417
- format: int32
7418
- requestBody:
7419
- required: true
7420
- content:
7421
- application/json:
7422
- schema:
7423
- $ref: "#/components/schemas/updateBalanceHistoryDetailsRequestObject"
7424
- examples:
7425
- update deleted source details:
7426
- value:
7427
- name: Savings
7428
- institution_name: Old Bank
7429
- display_name: Old Savings Account
7430
- account_type: savings
7431
- subtype: savings
7432
- mask: "1234"
7433
- responses:
7434
- "200":
7435
- description: Updated deleted source details
7436
- content:
7437
- application/json:
7438
- schema:
7439
- $ref: "#/components/schemas/updateBalanceHistoryDetailsResponseObject"
7440
- example:
7441
- name: Savings
7442
- institution_name: Old Bank
7443
- display_name: Old Savings Account
7444
- account_type: savings
7445
- subtype: savings
7446
- mask: "1234"
7447
- "400":
7448
- description: Bad Request
7449
- content:
7450
- application/json:
7451
- schema:
7452
- $ref: "#/components/schemas/errorResponseObject"
7453
- example:
7454
- message: Invalid Request Body
7455
- errors:
7456
- - errMsg: "At least one property must be provided: name, institution_name, display_name, account_type, subtype, mask."
7457
- "401":
7458
- $ref: "#/components/responses/unauthorizedToken"
7459
- "404":
7460
- description: Not Found
7461
- content:
7462
- application/json:
7463
- schema:
7464
- $ref: "#/components/schemas/errorResponseObject"
7465
- example:
7466
- message: Not Found
7467
- errors:
7468
- - errMsg: "Deleted balance history source 99999999 was not found."
7469
- "429":
7470
- $ref: "#/components/responses/rateLimited"
7471
- "500":
7472
- $ref: "#/components/responses/serverError"
6502
+ # /balance_history:
6503
+ # get:
6504
+ # tags:
6505
+ # - balance_history
6506
+ # summary: Get balance history
6507
+ # description: |-
6508
+ # Retrieve historical balance entries.<br><br>
6509
+ # Balance history is monthly. When `start_date` and `end_date` are both provided, they must be first-of-month dates. `start_date` must not be in the future, while `end_date` may be in the future. If one of `start_date` or `end_date` is provided, the other is required. If neither is provided, all available balance history is returned.<br><br>
6510
+ # The response groups entries by source account. Each item in `balance_history` contains a `source` object plus a `balances` array containing one balance entry per month in the requested range, or all stored entries when no range is provided.<br><br>
6511
+ # Historical entries for accounts that have been deleted may still be returned. These entries use `source.type: deleted` and include `deleted_account_id`, archived display fields, and account metadata on the `source` object.
6512
+ # operationId: getBalanceHistory
6513
+ # parameters:
6514
+ # - name: start_date
6515
+ # in: query
6516
+ # description: Optional start date for the requested history range in YYYY-MM-DD format. If set, `end_date` is also required. This must be the first day of a month and must not be in the future.
6517
+ # required: false
6518
+ # schema:
6519
+ # type: string
6520
+ # format: date
6521
+ # examples:
6522
+ # range start:
6523
+ # summary: Start date
6524
+ # value: "2026-01-01"
6525
+ # - name: end_date
6526
+ # in: query
6527
+ # description: Optional end date for the requested history range in YYYY-MM-DD format. If set, `start_date` is also required. This must be the first day of a month. For a single month, set this to the same first-of-month date as `start_date`.
6528
+ # required: false
6529
+ # schema:
6530
+ # type: string
6531
+ # format: date
6532
+ # examples:
6533
+ # range end:
6534
+ # summary: End date
6535
+ # value: "2026-03-01"
6536
+ # responses:
6537
+ # "200":
6538
+ # description: Historical balance entries for the requested date range
6539
+ # content:
6540
+ # application/json:
6541
+ # schema:
6542
+ # $ref: "#/components/schemas/balanceHistoryListResponseObject"
6543
+ # examples:
6544
+ # all account types:
6545
+ # value:
6546
+ # balance_history:
6547
+ # - source:
6548
+ # type: manual
6549
+ # manual_account_id: 119807
6550
+ # balances:
6551
+ # - id: 101
6552
+ # date: "2026-01-01"
6553
+ # balance: "41000.0000"
6554
+ # currency: usd
6555
+ # to_base: 41000
6556
+ # crypto_balance: null
6557
+ # - id: 102
6558
+ # date: "2026-02-01"
6559
+ # balance: "41211.8000"
6560
+ # currency: usd
6561
+ # to_base: 41211.8
6562
+ # crypto_balance: null
6563
+ # - source:
6564
+ # type: plaid
6565
+ # plaid_account_id: 119808
6566
+ # balances:
6567
+ # - id: 103
6568
+ # date: "2026-01-01"
6569
+ # balance: "5498.2800"
6570
+ # currency: usd
6571
+ # to_base: 5498.28
6572
+ # crypto_balance: null
6573
+ # - source:
6574
+ # type: crypto_manual
6575
+ # crypto_manual_id: 22001
6576
+ # symbol: btc
6577
+ # balances:
6578
+ # - id: 104
6579
+ # date: "2026-01-01"
6580
+ # balance: "53124.7200"
6581
+ # currency: usd
6582
+ # to_base: 53124.72
6583
+ # crypto_balance: "0.852341920145782301"
6584
+ # - source:
6585
+ # type: crypto_synced
6586
+ # crypto_synced_id: 33004
6587
+ # symbol: btc
6588
+ # balances:
6589
+ # - id: 105
6590
+ # date: "2026-01-01"
6591
+ # balance: "6231.2800"
6592
+ # currency: usd
6593
+ # to_base: 6231.28
6594
+ # crypto_balance: "0.100020003000400050"
6595
+ # - source:
6596
+ # type: deleted
6597
+ # deleted_account_id: 91
6598
+ # name: Savings
6599
+ # institution_name: Old Bank
6600
+ # display_name: Closed Savings
6601
+ # account_type: savings
6602
+ # subtype: savings
6603
+ # mask: "1234"
6604
+ # symbol: null
6605
+ # balances:
6606
+ # - id: 106
6607
+ # date: "2026-01-01"
6608
+ # balance: "1250.0000"
6609
+ # currency: usd
6610
+ # to_base: 1250
6611
+ # crypto_balance: null
6612
+ # manual account history:
6613
+ # value:
6614
+ # balance_history:
6615
+ # - source:
6616
+ # type: manual
6617
+ # manual_account_id: 119807
6618
+ # balances:
6619
+ # - id: 201
6620
+ # date: "2026-01-01"
6621
+ # balance: "41000.0000"
6622
+ # currency: usd
6623
+ # to_base: 41000
6624
+ # crypto_balance: null
6625
+ # - id: 202
6626
+ # date: "2026-02-01"
6627
+ # balance: "41211.8000"
6628
+ # currency: usd
6629
+ # to_base: 41211.8
6630
+ # crypto_balance: null
6631
+ # plaid account history:
6632
+ # value:
6633
+ # balance_history:
6634
+ # - source:
6635
+ # type: plaid
6636
+ # plaid_account_id: 119808
6637
+ # balances:
6638
+ # - id: 301
6639
+ # date: "2026-02-01"
6640
+ # balance: "5498.2800"
6641
+ # currency: usd
6642
+ # to_base: 5498.28
6643
+ # crypto_balance: null
6644
+ # synced crypto history:
6645
+ # value:
6646
+ # balance_history:
6647
+ # - source:
6648
+ # type: crypto_synced
6649
+ # crypto_synced_id: 33004
6650
+ # symbol: btc
6651
+ # balances:
6652
+ # - id: 401
6653
+ # date: "2026-02-01"
6654
+ # balance: "6231.2800"
6655
+ # currency: usd
6656
+ # to_base: 6231.28
6657
+ # crypto_balance: "0.100020003000400050"
6658
+ # deleted account history:
6659
+ # value:
6660
+ # balance_history:
6661
+ # - source:
6662
+ # type: deleted
6663
+ # deleted_account_id: 91
6664
+ # name: Savings
6665
+ # institution_name: Old Bank
6666
+ # display_name: Closed Savings
6667
+ # account_type: savings
6668
+ # subtype: savings
6669
+ # mask: "1234"
6670
+ # symbol: null
6671
+ # balances:
6672
+ # - id: 501
6673
+ # date: "2026-01-01"
6674
+ # balance: "1250.0000"
6675
+ # currency: usd
6676
+ # to_base: 1250
6677
+ # crypto_balance: null
6678
+ # "400":
6679
+ # description: Bad Request
6680
+ # content:
6681
+ # application/json:
6682
+ # schema:
6683
+ # $ref: "#/components/schemas/errorResponseObject"
6684
+ # examples:
6685
+ # missing paired date:
6686
+ # value:
6687
+ # message: Request Validation Failure
6688
+ # errors:
6689
+ # - errMsg: "`start_date` and `end_date` must either both be provided or both be omitted."
6690
+ # invalid range:
6691
+ # value:
6692
+ # message: Request Validation Failure
6693
+ # errors:
6694
+ # - errMsg: "`start_date` must be before or equal to `end_date`."
6695
+ # not first of month:
6696
+ # value:
6697
+ # message: Request Validation Failure
6698
+ # errors:
6699
+ # - errMsg: "`start_date` and `end_date` must both be the first day of a month."
6700
+ # future start date:
6701
+ # value:
6702
+ # message: Request Validation Failure
6703
+ # errors:
6704
+ # - errMsg: "`start_date` must not be in the future."
6705
+ # "401":
6706
+ # $ref: "#/components/responses/unauthorizedToken"
6707
+ # "429":
6708
+ # $ref: "#/components/responses/rateLimited"
6709
+ # "500":
6710
+ # $ref: "#/components/responses/serverError"
6711
+ # /balance_history/{account_type}/{account_id}:
6712
+ # get:
6713
+ # tags:
6714
+ # - balance_history
6715
+ # summary: Get balance history for an account
6716
+ # description: |-
6717
+ # Retrieve historical balance entries for one manual, Plaid, manual crypto, or deleted account. Crypto synced accounts require an additional `symbol` path parameter.<br><br>
6718
+ # The `account_type` path parameter identifies the type of account and the `account_id` path parameter identifies the specific id for that account type.<br><br>
6719
+ # When `start_date` and `end_date` are both provided, they must be first-of-month dates. `start_date` must not be in the future, while `end_date` may be in the future. If one of `start_date` or `end_date` is provided, the other is required. If neither is provided, all available history for the source is returned.
6720
+ # operationId: getBalanceHistoryForAccount
6721
+ # parameters:
6722
+ # - name: account_type
6723
+ # in: path
6724
+ # required: true
6725
+ # description: Source family to retrieve. Use `manual`, `plaid`, `crypto_manual`, or `deleted`.
6726
+ # schema:
6727
+ # type: string
6728
+ # enum: [manual, plaid, crypto_manual, deleted]
6729
+ # - name: account_id
6730
+ # in: path
6731
+ # required: true
6732
+ # description: Account or deleted-source identifier within the selected `account_type`.
6733
+ # schema:
6734
+ # type: integer
6735
+ # format: int32
6736
+ # - name: start_date
6737
+ # in: query
6738
+ # description: Optional start date for the requested history range in YYYY-MM-DD format. If set, `end_date` is also required. This must be the first day of a month and must not be in the future.
6739
+ # required: false
6740
+ # schema:
6741
+ # type: string
6742
+ # format: date
6743
+ # - name: end_date
6744
+ # in: query
6745
+ # description: Optional end date for the requested history range in YYYY-MM-DD format. If set, `start_date` is also required. This must be the first day of a month.
6746
+ # required: false
6747
+ # schema:
6748
+ # type: string
6749
+ # format: date
6750
+ # responses:
6751
+ # "200":
6752
+ # description: Historical balance entries for the requested source
6753
+ # content:
6754
+ # application/json:
6755
+ # schema:
6756
+ # $ref: "#/components/schemas/balanceHistoryListResponseObject"
6757
+ # examples:
6758
+ # manual account history:
6759
+ # value:
6760
+ # balance_history:
6761
+ # - source:
6762
+ # type: manual
6763
+ # manual_account_id: 119807
6764
+ # balances:
6765
+ # - id: 201
6766
+ # date: "2026-01-01"
6767
+ # balance: "41000.0000"
6768
+ # currency: usd
6769
+ # to_base: 41000
6770
+ # crypto_balance: null
6771
+ # - id: 202
6772
+ # date: "2026-02-01"
6773
+ # balance: "41211.8000"
6774
+ # currency: usd
6775
+ # to_base: 41211.8
6776
+ # crypto_balance: null
6777
+ # deleted account history:
6778
+ # value:
6779
+ # balance_history:
6780
+ # - source:
6781
+ # type: deleted
6782
+ # deleted_account_id: 91
6783
+ # name: Savings
6784
+ # institution_name: Old Bank
6785
+ # display_name: Closed Savings
6786
+ # account_type: savings
6787
+ # subtype: savings
6788
+ # mask: "1234"
6789
+ # symbol: null
6790
+ # balances:
6791
+ # - id: 501
6792
+ # date: "2026-01-01"
6793
+ # balance: "1250.0000"
6794
+ # currency: usd
6795
+ # to_base: 1250
6796
+ # crypto_balance: null
6797
+ # "400":
6798
+ # description: Bad Request
6799
+ # content:
6800
+ # application/json:
6801
+ # schema:
6802
+ # $ref: "#/components/schemas/errorResponseObject"
6803
+ # examples:
6804
+ # missing paired date:
6805
+ # value:
6806
+ # message: Request Validation Failure
6807
+ # errors:
6808
+ # - errMsg: "`start_date` and `end_date` must either both be provided or both be omitted."
6809
+ # invalid range:
6810
+ # value:
6811
+ # message: Request Validation Failure
6812
+ # errors:
6813
+ # - errMsg: "`start_date` must be before or equal to `end_date`."
6814
+ # "401":
6815
+ # $ref: "#/components/responses/unauthorizedToken"
6816
+ # "404":
6817
+ # description: Not Found
6818
+ # content:
6819
+ # application/json:
6820
+ # schema:
6821
+ # $ref: "#/components/schemas/errorResponseObject"
6822
+ # examples:
6823
+ # manual not found:
6824
+ # value:
6825
+ # message: Not Found
6826
+ # errors:
6827
+ # - errMsg: "There is no manual account with the id: 99999999."
6828
+ # deleted not found:
6829
+ # value:
6830
+ # message: Not Found
6831
+ # errors:
6832
+ # - errMsg: "Deleted balance history source 99999999 was not found."
6833
+ # "429":
6834
+ # $ref: "#/components/responses/rateLimited"
6835
+ # "500":
6836
+ # $ref: "#/components/responses/serverError"
6837
+ # put:
6838
+ # tags:
6839
+ # - balance_history
6840
+ # summary: Upsert balance history for an account
6841
+ # description: |-
6842
+ # Upsert one or more historical balance entries for a single manual, Plaid, manual crypto, or deleted account. Crypto synced accounts require an additional `symbol` path parameter.<br><br>
6843
+ # The `account_type` path parameter identifies the type of account and the `account_id` path parameter identifies the specific id for that account type.<br><br>
6844
+ # Submit one or more entries in the `balances` array. Each entry must specify a `date` and `balance` value.<br><br>
6845
+ # Balance history is monthly. Each entry's `date` must be the first day of a month and must be in a past month.<br><br>
6846
+ # `currency` may be provided for any balance entry. If omitted, it defaults to the account currency for manual/Plaid accounts, or the user's primary currency for crypto/deleted accounts.<br><br>
6847
+ # `symbol` may only be set when `account_type` is `crypto_manual` or `crypto_synced`. It is optional for `crypto_manual` accounts and tolerated for `deleted` accounts.<br><br>
6848
+ # `crypto_balance` may be provided for `crypto_manual`, `crypto_synced`, and `deleted` accounts, and is invalid for `manual` or `plaid` accounts.<br><br>
6849
+ # The response contains only the balance entries that were submitted in this request.
6850
+ # operationId: upsertBalanceHistoryForAccount
6851
+ # parameters:
6852
+ # - name: account_type
6853
+ # in: path
6854
+ # required: true
6855
+ # description: Source family to update. Use `manual`, `plaid`, `crypto_manual`, or `deleted`.
6856
+ # schema:
6857
+ # type: string
6858
+ # enum: [manual, plaid, crypto_manual, deleted]
6859
+ # - name: account_id
6860
+ # in: path
6861
+ # required: true
6862
+ # description: Account or deleted-source identifier within the selected `account_type`.
6863
+ # schema:
6864
+ # type: integer
6865
+ # format: int32
6866
+ # requestBody:
6867
+ # required: true
6868
+ # content:
6869
+ # application/json:
6870
+ # schema:
6871
+ # $ref: "#/components/schemas/upsertBalanceHistoryRequestObject"
6872
+ # examples:
6873
+ # manual account bulk upsert:
6874
+ # value:
6875
+ # balances:
6876
+ # - date: "2026-03-01"
6877
+ # balance: "41500.0000"
6878
+ # - date: "2026-04-01"
6879
+ # balance: "41625.5000"
6880
+ # crypto manual balance with symbol:
6881
+ # value:
6882
+ # balances:
6883
+ # - date: "2026-03-01"
6884
+ # balance: "56011.1200"
6885
+ # symbol: btc
6886
+ # crypto_balance: "0.852341920145782301"
6887
+ # deleted account bulk upsert:
6888
+ # value:
6889
+ # balances:
6890
+ # - date: "2026-03-01"
6891
+ # symbol: btc
6892
+ # crypto_balance: "0.020000000000000000"
6893
+ # currency: usd
6894
+ # balance: "1255"
6895
+ # get-shaped balance entry input:
6896
+ # value:
6897
+ # balances:
6898
+ # - id: 601
6899
+ # date: "2026-03-01"
6900
+ # balance: "41500.0000"
6901
+ # currency: usd
6902
+ # to_base: 41500
6903
+ # crypto_balance: null
6904
+ # responses:
6905
+ # "200":
6906
+ # description: Returns the modified balance entries only. Other historical
6907
+ # entries for the account are omitted from `balances`.
6908
+ # content:
6909
+ # application/json:
6910
+ # schema:
6911
+ # $ref: "#/components/schemas/balanceHistoryAccountObject"
6912
+ # examples:
6913
+ # manual account bulk upsert:
6914
+ # summary: Two upserted rows returned (not full account history)
6915
+ # value:
6916
+ # source:
6917
+ # type: manual
6918
+ # manual_account_id: 119807
6919
+ # balances:
6920
+ # - id: 601
6921
+ # date: "2026-03-01"
6922
+ # balance: "41500.0000"
6923
+ # currency: usd
6924
+ # to_base: 41500
6925
+ # crypto_balance: null
6926
+ # - id: 602
6927
+ # date: "2026-04-01"
6928
+ # balance: "41625.5000"
6929
+ # currency: usd
6930
+ # to_base: 41625.5
6931
+ # crypto_balance: null
6932
+ # crypto manual balance with symbol:
6933
+ # summary: Single upserted row returned
6934
+ # value:
6935
+ # source:
6936
+ # type: crypto_manual
6937
+ # crypto_manual_id: 22001
6938
+ # symbol: btc
6939
+ # balances:
6940
+ # - id: 603
6941
+ # date: "2026-03-01"
6942
+ # balance: "56011.1200"
6943
+ # currency: usd
6944
+ # to_base: 56011.12
6945
+ # crypto_balance: "0.852341920145782301"
6946
+ # deleted account bulk upsert:
6947
+ # summary: Single upserted row returned
6948
+ # value:
6949
+ # source:
6950
+ # type: deleted
6951
+ # deleted_account_id: 91
6952
+ # name: Savings
6953
+ # institution_name: Old Bank
6954
+ # display_name: Closed Savings
6955
+ # account_type: savings
6956
+ # subtype: savings
6957
+ # mask: "1234"
6958
+ # symbol: btc
6959
+ # balances:
6960
+ # - id: 504
6961
+ # date: "2026-03-01"
6962
+ # balance: "1255"
6963
+ # currency: usd
6964
+ # to_base: 1255
6965
+ # crypto_balance: "0.020000000000000000"
6966
+ # "400":
6967
+ # description: Bad Request. The entire request is rejected if any row in
6968
+ # `balances` fails validation; no rows are updated.
6969
+ # content:
6970
+ # application/json:
6971
+ # schema:
6972
+ # $ref: "#/components/schemas/errorResponseObject"
6973
+ # examples:
6974
+ # missing balances:
6975
+ # value:
6976
+ # message: Invalid Request Body
6977
+ # errors:
6978
+ # - errMsg: "Missing required property 'balances' in request body."
6979
+ # empty balances array:
6980
+ # value:
6981
+ # message: Invalid Request Body
6982
+ # errors:
6983
+ # - errMsg: "Invalid value for property 'balances'. Array must contain at least 1 element(s)"
6984
+ # invalid property:
6985
+ # value:
6986
+ # message: Invalid Request Body
6987
+ # errors:
6988
+ # - errMsg: "Invalid property 'foo' in request body."
6989
+ # invalid date:
6990
+ # value:
6991
+ # message: Request Validation Failure
6992
+ # errors:
6993
+ # - errMsg: "`date` must be the first day of a month."
6994
+ # request_balances_index: 0
6995
+ # code: VALIDATION_ERROR
6996
+ # future date:
6997
+ # value:
6998
+ # message: Request Validation Failure
6999
+ # errors:
7000
+ # - errMsg: "`date` must be in a past month."
7001
+ # request_balances_index: 1
7002
+ # crypto balance not allowed:
7003
+ # value:
7004
+ # message: Request Validation Failure
7005
+ # errors:
7006
+ # - errMsg: "`crypto_balance` may only be set when `account_type` is `crypto_manual`, `crypto_synced`, or `deleted`."
7007
+ # request_balances_index: 0
7008
+ # invalid row in bulk request:
7009
+ # value:
7010
+ # message: Request Validation Failure
7011
+ # errors:
7012
+ # - errMsg: "`symbol` may only be set when `account_type` is `crypto_manual` or `crypto_synced`."
7013
+ # request_balances_index: 1
7014
+ # "401":
7015
+ # $ref: "#/components/responses/unauthorizedToken"
7016
+ # "404":
7017
+ # description: Not Found
7018
+ # content:
7019
+ # application/json:
7020
+ # schema:
7021
+ # $ref: "#/components/schemas/errorResponseObject"
7022
+ # example:
7023
+ # message: Not Found
7024
+ # errors:
7025
+ # - errMsg: "There is no manual account with the id: 99999999."
7026
+ # "429":
7027
+ # $ref: "#/components/responses/rateLimited"
7028
+ # "500":
7029
+ # $ref: "#/components/responses/serverError"
7030
+ # delete:
7031
+ # tags:
7032
+ # - balance_history
7033
+ # summary: Delete all balance history for an account
7034
+ # description: |-
7035
+ # Delete all historical balance entries for a single manual, Plaid, manual crypto, or deleted account. Crypto synced accounts require an additional `symbol` path parameter.
7036
+ # operationId: deleteBalanceHistoryForAccount
7037
+ # parameters:
7038
+ # - name: account_type
7039
+ # in: path
7040
+ # required: true
7041
+ # description: Source family to delete. Use `manual`, `plaid`, `crypto_manual`, or `deleted`.
7042
+ # schema:
7043
+ # type: string
7044
+ # enum: [manual, plaid, crypto_manual, deleted]
7045
+ # - name: account_id
7046
+ # in: path
7047
+ # required: true
7048
+ # description: Account or deleted-source identifier within the selected `account_type`.
7049
+ # schema:
7050
+ # type: integer
7051
+ # format: int32
7052
+ # responses:
7053
+ # "204":
7054
+ # description: All history for the account/source was deleted
7055
+ # "401":
7056
+ # $ref: "#/components/responses/unauthorizedToken"
7057
+ # "404":
7058
+ # description: Not Found
7059
+ # content:
7060
+ # application/json:
7061
+ # schema:
7062
+ # $ref: "#/components/schemas/errorResponseObject"
7063
+ # examples:
7064
+ # source not found:
7065
+ # value:
7066
+ # message: Not Found
7067
+ # errors:
7068
+ # - errMsg: "There is no manual account with the id: 99999999."
7069
+ # "429":
7070
+ # $ref: "#/components/responses/rateLimited"
7071
+ # "500":
7072
+ # $ref: "#/components/responses/serverError"
7073
+ # /balance_history/crypto_synced/{account_id}/{symbol}:
7074
+ # get:
7075
+ # tags:
7076
+ # - balance_history
7077
+ # summary: Get balance history for a synced crypto symbol
7078
+ # description: |-
7079
+ # Retrieve historical balance entries for a single synced crypto symbol stream.<br><br>
7080
+ # Use the `crypto_synced` account id together with a `symbol` path parameter to select one balance stream within that synced crypto account.<br><br>
7081
+ # When `start_date` and `end_date` are both provided, they must be first-of-month dates. `start_date` must not be in the future, while `end_date` may be in the future. If one of `start_date` or `end_date` is provided, the other is required. If neither is provided, all available history for the symbol stream is returned.
7082
+ # operationId: getBalanceHistoryForCryptoSynced
7083
+ # parameters:
7084
+ # - name: account_id
7085
+ # in: path
7086
+ # required: true
7087
+ # description: Synced crypto account identifier.
7088
+ # schema:
7089
+ # type: integer
7090
+ # format: int32
7091
+ # - name: symbol
7092
+ # in: path
7093
+ # required: true
7094
+ # description: Crypto symbol identifying one balance stream within the synced crypto account.
7095
+ # schema:
7096
+ # type: string
7097
+ # minLength: 1
7098
+ # maxLength: 25
7099
+ # - name: start_date
7100
+ # in: query
7101
+ # description: Optional start date for the requested history range in YYYY-MM-DD format. If set, `end_date` is also required. This must be the first day of a month and must not be in the future.
7102
+ # required: false
7103
+ # schema:
7104
+ # type: string
7105
+ # format: date
7106
+ # - name: end_date
7107
+ # in: query
7108
+ # description: Optional end date for the requested history range in YYYY-MM-DD format. If set, `start_date` is also required. This must be the first day of a month.
7109
+ # required: false
7110
+ # schema:
7111
+ # type: string
7112
+ # format: date
7113
+ # responses:
7114
+ # "200":
7115
+ # description: Historical balance entries for the synced crypto symbol stream
7116
+ # content:
7117
+ # application/json:
7118
+ # schema:
7119
+ # $ref: "#/components/schemas/balanceHistoryListResponseObject"
7120
+ # example:
7121
+ # balance_history:
7122
+ # - source:
7123
+ # type: crypto_synced
7124
+ # crypto_synced_id: 33004
7125
+ # symbol: btc
7126
+ # balances:
7127
+ # - id: 401
7128
+ # date: "2026-02-01"
7129
+ # balance: "6231.2800"
7130
+ # currency: usd
7131
+ # to_base: 6231.28
7132
+ # crypto_balance: "0.100020003000400050"
7133
+ # "400":
7134
+ # description: Bad Request
7135
+ # content:
7136
+ # application/json:
7137
+ # schema:
7138
+ # $ref: "#/components/schemas/errorResponseObject"
7139
+ # examples:
7140
+ # missing paired date:
7141
+ # value:
7142
+ # message: Request Validation Failure
7143
+ # errors:
7144
+ # - errMsg: "`start_date` and `end_date` must either both be provided or both be omitted."
7145
+ # invalid range:
7146
+ # value:
7147
+ # message: Request Validation Failure
7148
+ # errors:
7149
+ # - errMsg: "`start_date` must be before or equal to `end_date`."
7150
+ # "401":
7151
+ # $ref: "#/components/responses/unauthorizedToken"
7152
+ # "404":
7153
+ # description: Not Found
7154
+ # content:
7155
+ # application/json:
7156
+ # schema:
7157
+ # $ref: "#/components/schemas/errorResponseObject"
7158
+ # examples:
7159
+ # source not found:
7160
+ # value:
7161
+ # message: Not Found
7162
+ # errors:
7163
+ # - errMsg: "There is no synced crypto account with the id: 99999999."
7164
+ # symbol not found:
7165
+ # value:
7166
+ # message: Not Found
7167
+ # errors:
7168
+ # - errMsg: "There is no balance history for symbol 'doge' on this account."
7169
+ # "429":
7170
+ # $ref: "#/components/responses/rateLimited"
7171
+ # "500":
7172
+ # $ref: "#/components/responses/serverError"
7173
+ # put:
7174
+ # tags:
7175
+ # - balance_history
7176
+ # summary: Upsert balance history for a synced crypto symbol
7177
+ # description: |-
7178
+ # Upsert one or more historical balance entries for a single synced crypto symbol stream.<br><br>
7179
+ # The path identifies both the synced crypto account and the symbol being updated.<br><br>
7180
+ # Submit one or more entries in the `balances` array. Each entry must specify a `date` and `balance` value.<br><br>
7181
+ # Balance history is monthly. Each entry's `date` must be the first day of a month and must be in a past month.<br><br>
7182
+ # The request body may include an optional `symbol` on each balance entry. If provided, it must match the `symbol` path parameter. Omit `symbol` to use the path value.<br><br>
7183
+ # `currency` may be provided for any balance entry. If omitted, it defaults to the user's primary currency for synced crypto balances.<br><br>
7184
+ # `crypto_balance` may be provided for synced crypto balances.<br><br>
7185
+ # The response contains only the balance entries that were submitted in this request.
7186
+ # operationId: upsertBalanceHistoryForCryptoSynced
7187
+ # parameters:
7188
+ # - name: account_id
7189
+ # in: path
7190
+ # required: true
7191
+ # description: Synced crypto account identifier to update.
7192
+ # schema:
7193
+ # type: integer
7194
+ # format: int32
7195
+ # - name: symbol
7196
+ # in: path
7197
+ # required: true
7198
+ # description: Crypto symbol identifying one balance stream within the synced crypto account.
7199
+ # schema:
7200
+ # type: string
7201
+ # minLength: 1
7202
+ # maxLength: 25
7203
+ # requestBody:
7204
+ # required: true
7205
+ # content:
7206
+ # application/json:
7207
+ # schema:
7208
+ # $ref: "#/components/schemas/upsertBalanceHistoryRequestObject"
7209
+ # examples:
7210
+ # synced crypto bulk upsert:
7211
+ # value:
7212
+ # balances:
7213
+ # - date: "2026-03-01"
7214
+ # balance: "6400.0000"
7215
+ # crypto_balance: "0.100020003000400050"
7216
+ # - date: "2026-04-01"
7217
+ # balance: "6500.0000"
7218
+ # crypto_balance: "0.100020003000400050"
7219
+ # responses:
7220
+ # "200":
7221
+ # description: Returns the modified balance entries only. Other historical
7222
+ # entries for the symbol stream are omitted from `balances`.
7223
+ # content:
7224
+ # application/json:
7225
+ # schema:
7226
+ # $ref: "#/components/schemas/balanceHistoryAccountObject"
7227
+ # examples:
7228
+ # synced crypto bulk upsert:
7229
+ # summary: Two upserted rows returned (not full symbol history)
7230
+ # value:
7231
+ # source:
7232
+ # type: crypto_synced
7233
+ # crypto_synced_id: 33004
7234
+ # symbol: btc
7235
+ # balances:
7236
+ # - id: 604
7237
+ # date: "2026-03-01"
7238
+ # balance: "6400.0000"
7239
+ # currency: usd
7240
+ # to_base: 6400
7241
+ # crypto_balance: "0.100020003000400050"
7242
+ # - id: 605
7243
+ # date: "2026-04-01"
7244
+ # balance: "6500.0000"
7245
+ # currency: usd
7246
+ # to_base: 6500
7247
+ # crypto_balance: "0.100020003000400050"
7248
+ # "400":
7249
+ # description: Bad Request. The entire request is rejected if any row in
7250
+ # `balances` fails validation; no rows are updated.
7251
+ # content:
7252
+ # application/json:
7253
+ # schema:
7254
+ # $ref: "#/components/schemas/errorResponseObject"
7255
+ # examples:
7256
+ # missing balances:
7257
+ # value:
7258
+ # message: Invalid Request Body
7259
+ # errors:
7260
+ # - errMsg: "Missing required property 'balances' in request body."
7261
+ # empty balances array:
7262
+ # value:
7263
+ # message: Invalid Request Body
7264
+ # errors:
7265
+ # - errMsg: "Invalid value for property 'balances'. Array must contain at least 1 element(s)"
7266
+ # invalid date:
7267
+ # value:
7268
+ # message: Request Validation Failure
7269
+ # errors:
7270
+ # - errMsg: "`date` must be the first day of a month."
7271
+ # request_balances_index: 0
7272
+ # future date:
7273
+ # value:
7274
+ # message: Request Validation Failure
7275
+ # errors:
7276
+ # - errMsg: "`date` must be in a past month."
7277
+ # request_balances_index: 1
7278
+ # symbol mismatch:
7279
+ # value:
7280
+ # message: Request Validation Failure
7281
+ # errors:
7282
+ # - errMsg: "`symbol` in request body (doge) does not match the path symbol (eth)."
7283
+ # request_balances_index: 0
7284
+ # invalid row in bulk request:
7285
+ # value:
7286
+ # message: Request Validation Failure
7287
+ # errors:
7288
+ # - errMsg: "`balance` must be a valid numeric string or number."
7289
+ # request_balances_index: 1
7290
+ # "401":
7291
+ # $ref: "#/components/responses/unauthorizedToken"
7292
+ # "404":
7293
+ # description: Not Found
7294
+ # content:
7295
+ # application/json:
7296
+ # schema:
7297
+ # $ref: "#/components/schemas/errorResponseObject"
7298
+ # examples:
7299
+ # source not found:
7300
+ # value:
7301
+ # message: Not Found
7302
+ # errors:
7303
+ # - errMsg: "There is no synced crypto account with the id: 99999999."
7304
+ # symbol not found:
7305
+ # value:
7306
+ # message: Not Found
7307
+ # errors:
7308
+ # - errMsg: "There is no balance history for symbol 'doge' on this account."
7309
+ # "429":
7310
+ # $ref: "#/components/responses/rateLimited"
7311
+ # "500":
7312
+ # $ref: "#/components/responses/serverError"
7313
+ # delete:
7314
+ # tags:
7315
+ # - balance_history
7316
+ # summary: Delete all balance history for a synced crypto symbol
7317
+ # description: |-
7318
+ # Delete all historical balance entries for a single synced crypto symbol stream.<br><br>
7319
+ # The path identifies both the synced crypto account and the symbol whose history should be deleted.
7320
+ # operationId: deleteBalanceHistoryForCryptoSynced
7321
+ # parameters:
7322
+ # - name: account_id
7323
+ # in: path
7324
+ # required: true
7325
+ # description: Synced crypto account identifier.
7326
+ # schema:
7327
+ # type: integer
7328
+ # format: int32
7329
+ # - name: symbol
7330
+ # in: path
7331
+ # required: true
7332
+ # description: Crypto symbol identifying one balance stream within the synced crypto account.
7333
+ # schema:
7334
+ # type: string
7335
+ # minLength: 1
7336
+ # maxLength: 25
7337
+ # responses:
7338
+ # "204":
7339
+ # description: All history for the synced crypto symbol stream was deleted
7340
+ # "401":
7341
+ # $ref: "#/components/responses/unauthorizedToken"
7342
+ # "404":
7343
+ # description: Not Found
7344
+ # content:
7345
+ # application/json:
7346
+ # schema:
7347
+ # $ref: "#/components/schemas/errorResponseObject"
7348
+ # example:
7349
+ # message: Not Found
7350
+ # errors:
7351
+ # - errMsg: "There is no balance history for symbol 'doge' on this account."
7352
+ # "429":
7353
+ # $ref: "#/components/responses/rateLimited"
7354
+ # "500":
7355
+ # $ref: "#/components/responses/serverError"
7356
+ # /balance_history/entries/{id}:
7357
+ # delete:
7358
+ # tags:
7359
+ # - balance_history
7360
+ # summary: Delete a balance history entry
7361
+ # description: |-
7362
+ # Delete a single monthly balance history entry by its id.
7363
+ # operationId: deleteBalanceHistoryEntry
7364
+ # parameters:
7365
+ # - name: id
7366
+ # in: path
7367
+ # required: true
7368
+ # description: Balance history row identifier to delete.
7369
+ # schema:
7370
+ # type: integer
7371
+ # format: int32
7372
+ # responses:
7373
+ # "204":
7374
+ # description: The balance history entry was deleted
7375
+ # "400":
7376
+ # description: Bad Request
7377
+ # content:
7378
+ # application/json:
7379
+ # schema:
7380
+ # $ref: "#/components/schemas/errorResponseObject"
7381
+ # example:
7382
+ # message: Request Validation Failure
7383
+ # errors:
7384
+ # - errMsg: "Invalid value type for path parameter: 'id'. Expected 'number', received 'string'."
7385
+ # "401":
7386
+ # $ref: "#/components/responses/unauthorizedToken"
7387
+ # "404":
7388
+ # description: Not Found
7389
+ # content:
7390
+ # application/json:
7391
+ # schema:
7392
+ # $ref: "#/components/schemas/errorResponseObject"
7393
+ # example:
7394
+ # message: Not Found
7395
+ # errors:
7396
+ # - errMsg: "There is no balance history entry with the id: 99999999."
7397
+ # "429":
7398
+ # $ref: "#/components/responses/rateLimited"
7399
+ # "500":
7400
+ # $ref: "#/components/responses/serverError"
7401
+ # /balance_history/deleted/{account_id}/details:
7402
+ # put:
7403
+ # tags:
7404
+ # - balance_history
7405
+ # summary: Update details for a deleted account
7406
+ # description: |-
7407
+ # Update archived metadata for a deleted balance history source.<br><br>
7408
+ # Pass the `deleted` source id returned on `source.deleted_account_id`. This endpoint updates the stored deleted-source metadata used for all historical entries associated with that deleted source.
7409
+ # operationId: updateBalanceHistoryDetails
7410
+ # parameters:
7411
+ # - name: account_id
7412
+ # in: path
7413
+ # required: true
7414
+ # description: Deleted account history source identifier to update.
7415
+ # schema:
7416
+ # type: integer
7417
+ # format: int32
7418
+ # requestBody:
7419
+ # required: true
7420
+ # content:
7421
+ # application/json:
7422
+ # schema:
7423
+ # $ref: "#/components/schemas/updateBalanceHistoryDetailsRequestObject"
7424
+ # examples:
7425
+ # update deleted source details:
7426
+ # value:
7427
+ # name: Savings
7428
+ # institution_name: Old Bank
7429
+ # display_name: Old Savings Account
7430
+ # account_type: savings
7431
+ # subtype: savings
7432
+ # mask: "1234"
7433
+ # responses:
7434
+ # "200":
7435
+ # description: Updated deleted source details
7436
+ # content:
7437
+ # application/json:
7438
+ # schema:
7439
+ # $ref: "#/components/schemas/updateBalanceHistoryDetailsResponseObject"
7440
+ # example:
7441
+ # name: Savings
7442
+ # institution_name: Old Bank
7443
+ # display_name: Old Savings Account
7444
+ # account_type: savings
7445
+ # subtype: savings
7446
+ # mask: "1234"
7447
+ # "400":
7448
+ # description: Bad Request
7449
+ # content:
7450
+ # application/json:
7451
+ # schema:
7452
+ # $ref: "#/components/schemas/errorResponseObject"
7453
+ # example:
7454
+ # message: Invalid Request Body
7455
+ # errors:
7456
+ # - errMsg: "At least one property must be provided: name, institution_name, display_name, account_type, subtype, mask."
7457
+ # "401":
7458
+ # $ref: "#/components/responses/unauthorizedToken"
7459
+ # "404":
7460
+ # description: Not Found
7461
+ # content:
7462
+ # application/json:
7463
+ # schema:
7464
+ # $ref: "#/components/schemas/errorResponseObject"
7465
+ # example:
7466
+ # message: Not Found
7467
+ # errors:
7468
+ # - errMsg: "Deleted balance history source 99999999 was not found."
7469
+ # "429":
7470
+ # $ref: "#/components/responses/rateLimited"
7471
+ # "500":
7472
+ # $ref: "#/components/responses/serverError"
7473
7473
  /manual_accounts:
7474
7474
  get:
7475
7475
  tags: