@lunch-money/developer-docs 2.11.0-preview.9 → 2.11.1-docs.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/docs/README.md +1 -0
- package/docs/STYLE_GUIDE.md +88 -0
- package/docs/amounts-and-balances.md +5 -5
- package/docs/beta-introduction.md +9 -0
- package/docs/branding-your-app.md +59 -0
- package/docs/currencies.md +8 -9
- package/docs/getting-started.md +14 -14
- package/docs/introduction.md +5 -9
- package/docs/locales.md +124 -0
- package/docs/pagination.md +43 -44
- package/docs/rate-limiting.md +45 -45
- package/docs/using-with-ai.md +2 -2
- package/manifest.json +19 -1
- package/package.json +1 -1
- package/v1/_user.md +2 -2
- package/v2/docs/AGENTS.md +48 -0
- package/v2/docs/intro-to-v2.md +12 -12
- package/v2/docs/migration-guide.md +2 -2
- package/v2/docs/version-history.md +28 -19
- package/v2/images/powered-by-lunch-money-badge.png +0 -0
- package/v2/spec/AGENTS.md +75 -0
- package/v2/spec/lunch-money-api-v2.yaml +1260 -359
|
@@ -4,13 +4,23 @@ info:
|
|
|
4
4
|
description: |-
|
|
5
5
|
### Introduction
|
|
6
6
|
|
|
7
|
+
Welcome to the Lunch Money v2 API reference. This is the **v2.11.1** spec.
|
|
8
|
+
|
|
7
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).
|
|
8
10
|
|
|
9
|
-
|
|
11
|
+
|
|
12
|
+
**Try it from these docs**
|
|
10
13
|
|
|
11
|
-
**
|
|
14
|
+
These docs are interactive — use **Test request** on any endpoint to call the API from this page.
|
|
15
|
+
Choose a LIVE or MOCK service from the Server dropdown.
|
|
16
|
+
Requests sent to `https://api.lunchmoney.dev/v2` can <span class="red-text"><strong>change or delete</strong></span> your data and are <span class="red-text"><strong>permanent</strong></span>.
|
|
17
|
+
See the [Getting Started Guide](https://lunchmoney.dev/v2/getting-started) before using the live API.
|
|
18
|
+
|
|
19
|
+
**Static mock server**
|
|
12
20
|
|
|
13
|
-
Explore
|
|
21
|
+
Explore without risk to real data. Select `http://mock.lunchmoney.dev/v2` in the Server dropdown to work with static mock data.
|
|
22
|
+
POST, PUT, and DELETE requests will return realistic responses, but do not change the mock data.
|
|
23
|
+
|
|
14
24
|
|
|
15
25
|
**Client Libraries & SDKs**
|
|
16
26
|
|
|
@@ -18,33 +28,36 @@ info:
|
|
|
18
28
|
|
|
19
29
|
**Migrating from v1**
|
|
20
30
|
|
|
21
|
-
The v2 API is not backwards compatible with v1. See the [Migration Guide](https://
|
|
31
|
+
The v2 API is not backwards compatible with v1. See the [Migration Guide](https://lunchmoney.dev/v2/migration-guide) for details.
|
|
22
32
|
|
|
23
33
|
**Useful links**
|
|
24
|
-
- [
|
|
25
|
-
- [
|
|
26
|
-
- [
|
|
27
|
-
- [
|
|
28
|
-
- [
|
|
29
|
-
- [Rate Limits](https://alpha.lunchmoney.dev/v2/rate-limits)
|
|
34
|
+
- [Getting Started Guide](https://lunchmoney.dev/v2/getting-started)
|
|
35
|
+
- [v2 API Overview](https://lunchmoney.dev/v2/overview)
|
|
36
|
+
- [Version History](https://lunchmoney.dev/v2/version-history)
|
|
37
|
+
- [Migration Guide](https://lunchmoney.dev/v2/migration-guide)
|
|
38
|
+
- [Rate Limits](https://lunchmoney.dev/v2/rate-limits)
|
|
30
39
|
termsOfService: https://lunchmoney.dev/#current-status
|
|
31
40
|
contact:
|
|
32
41
|
email: devsupport@lunchmoney.app
|
|
33
42
|
license:
|
|
34
43
|
name: Apache 2.0
|
|
35
44
|
url: http://www.apache.org/licenses/LICENSE-2.0.html
|
|
36
|
-
version: 2.11.
|
|
45
|
+
version: 2.11.1
|
|
37
46
|
|
|
38
47
|
servers:
|
|
39
48
|
- url: https://api.lunchmoney.dev/v2
|
|
40
|
-
description:
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
description: Static mock version of the v2 Lunch Money API Server
|
|
49
|
+
description: ⚠ LIVE — changes real Lunch Money data
|
|
50
|
+
- url: http://mock.lunchmoney.dev/v2
|
|
51
|
+
description: MOCK — static demo data, no API key required
|
|
44
52
|
|
|
45
53
|
tags:
|
|
46
54
|
- name: me
|
|
47
|
-
description: View details and settings for the current user and account
|
|
55
|
+
description: View details and settings for the current user and account.<p>
|
|
56
|
+
Use [/me/user/settings](#tag/me/GET/me/user/settings) for user-wide
|
|
57
|
+
preferences, [/me/account/settings](#tag/me/GET/me/account/settings) for
|
|
58
|
+
account-wide preferences, and
|
|
59
|
+
[/me/user/account/settings](#tag/me/GET/me/user/account/settings) for
|
|
60
|
+
preferences specific to the current user and budget account.
|
|
48
61
|
- name: categories
|
|
49
62
|
description: Work with categories
|
|
50
63
|
externalDocs:
|
|
@@ -71,7 +84,11 @@ tags:
|
|
|
71
84
|
description: Learn more about crypto assets
|
|
72
85
|
url: https://support.lunchmoney.app/setup/crypto
|
|
73
86
|
- name: balance_history
|
|
74
|
-
description:
|
|
87
|
+
description: >-
|
|
88
|
+
View and update monthly account balances used by the
|
|
89
|
+
[Net Worth](https://my.lunchmoney.app/net-worth) views in the Lunch Money app.
|
|
90
|
+
History is monthly. The current month may be calculated on demand when
|
|
91
|
+
requested.
|
|
75
92
|
- name: recurring_items
|
|
76
93
|
description: Work with recurring items
|
|
77
94
|
externalDocs:
|
|
@@ -138,12 +155,18 @@ components:
|
|
|
138
155
|
account_id:
|
|
139
156
|
type: integer
|
|
140
157
|
format: int64
|
|
141
|
-
description: Unique ID for the current
|
|
158
|
+
description: Unique ID for the current budget account
|
|
142
159
|
budget_name:
|
|
143
160
|
type: string
|
|
144
|
-
description: Name of the current
|
|
161
|
+
description: Name of the current budget account.<p> Also available
|
|
162
|
+
as `display_name` on
|
|
163
|
+
[/me/account/settings](#tag/me/GET/me/account/settings), which is
|
|
164
|
+
the preferred endpoint for reading and updating account settings.
|
|
145
165
|
primary_currency:
|
|
146
|
-
description: Primary currency for the current
|
|
166
|
+
description: Primary currency for the current budget account.<p>
|
|
167
|
+
Also available on [/me/account/settings](#tag/me/GET/me/account/settings),
|
|
168
|
+
which is the preferred endpoint for reading and updating account
|
|
169
|
+
settings.
|
|
147
170
|
allOf:
|
|
148
171
|
- $ref: "#/components/schemas/currencyEnum"
|
|
149
172
|
api_key_label:
|
|
@@ -979,16 +1002,19 @@ components:
|
|
|
979
1002
|
example: Cold Wallet BTC
|
|
980
1003
|
display_name:
|
|
981
1004
|
type: string
|
|
1005
|
+
nullable: true
|
|
982
1006
|
minLength: 1
|
|
983
1007
|
maxLength: 45
|
|
984
|
-
description:
|
|
985
|
-
|
|
1008
|
+
description: Display name for the manual crypto asset. If omitted or
|
|
1009
|
+
`null`, clients may derive one from `institution_name` + `name`.
|
|
986
1010
|
example: Cold Storage
|
|
987
1011
|
institution_name:
|
|
988
1012
|
type: string
|
|
1013
|
+
nullable: true
|
|
989
1014
|
minLength: 1
|
|
990
1015
|
maxLength: 50
|
|
991
|
-
description:
|
|
1016
|
+
description: Institution or wallet provider display name. If omitted
|
|
1017
|
+
or `null`, no institution name is set.
|
|
992
1018
|
example: Ledger
|
|
993
1019
|
balance:
|
|
994
1020
|
oneOf:
|
|
@@ -1244,15 +1270,19 @@ components:
|
|
|
1244
1270
|
example: My Savings Account
|
|
1245
1271
|
institution_name:
|
|
1246
1272
|
type: string
|
|
1273
|
+
nullable: true
|
|
1247
1274
|
example: Bank of the West
|
|
1248
|
-
description: Name of institution holding the manual account
|
|
1275
|
+
description: Name of the institution holding the manual account. If
|
|
1276
|
+
omitted or `null`, no institution name is set.
|
|
1249
1277
|
minLength: 1
|
|
1250
1278
|
maxLength: 50
|
|
1251
1279
|
display_name:
|
|
1252
1280
|
type: string
|
|
1253
|
-
|
|
1254
|
-
|
|
1255
|
-
|
|
1281
|
+
nullable: true
|
|
1282
|
+
description: Display name of the manual account. If omitted or
|
|
1283
|
+
`null`, it is derived from `institution_name` and `name`. An
|
|
1284
|
+
explicitly set display name must be unique for the budget
|
|
1285
|
+
account.
|
|
1256
1286
|
example: Savings
|
|
1257
1287
|
type:
|
|
1258
1288
|
description: The type of manual account
|
|
@@ -1260,8 +1290,10 @@ components:
|
|
|
1260
1290
|
- $ref: "#/components/schemas/accountTypeEnum"
|
|
1261
1291
|
subtype:
|
|
1262
1292
|
type: string
|
|
1263
|
-
|
|
1264
|
-
|
|
1293
|
+
nullable: true
|
|
1294
|
+
description: Manual account subtype. If omitted or `null`, no subtype
|
|
1295
|
+
is set. Examples include retirement, checking, savings, and prepaid
|
|
1296
|
+
credit card.
|
|
1265
1297
|
minLength: 1
|
|
1266
1298
|
maxLength: 100
|
|
1267
1299
|
example: prepaid credit card
|
|
@@ -1635,7 +1667,7 @@ components:
|
|
|
1635
1667
|
type:
|
|
1636
1668
|
type: string
|
|
1637
1669
|
enum: [manual]
|
|
1638
|
-
description: Identifies this entry as belonging to a
|
|
1670
|
+
description: Identifies this entry as belonging to a manual account.
|
|
1639
1671
|
manual_account_id:
|
|
1640
1672
|
type: integer
|
|
1641
1673
|
format: int32
|
|
@@ -1664,14 +1696,14 @@ components:
|
|
|
1664
1696
|
|
|
1665
1697
|
balanceHistorySourceCryptoManual:
|
|
1666
1698
|
type: object
|
|
1667
|
-
description: Source information for a
|
|
1699
|
+
description: Source information for a manual cryptocurrency balance history entry.
|
|
1668
1700
|
additionalProperties: false
|
|
1669
1701
|
x-internal: true
|
|
1670
1702
|
properties:
|
|
1671
1703
|
type:
|
|
1672
1704
|
type: string
|
|
1673
1705
|
enum: [crypto_manual]
|
|
1674
|
-
description: Identifies this entry as belonging to a
|
|
1706
|
+
description: Identifies this entry as belonging to a manual crypto account.
|
|
1675
1707
|
crypto_manual_id:
|
|
1676
1708
|
type: integer
|
|
1677
1709
|
format: int32
|
|
@@ -1714,10 +1746,11 @@ components:
|
|
|
1714
1746
|
type: object
|
|
1715
1747
|
x-internal: true
|
|
1716
1748
|
description: >
|
|
1717
|
-
Source information for
|
|
1749
|
+
Source information for balance history whose account has since been deleted.
|
|
1718
1750
|
Historical balances are preserved when a user chooses to keep history on account deletion.
|
|
1719
1751
|
This object contains details that can be used to display the deleted account in the UI.
|
|
1720
|
-
The `deleted_account_id` can be passed to
|
|
1752
|
+
The `deleted_account_id` can be passed to
|
|
1753
|
+
[PUT /balance_history/deleted/{account_id}/details](#tag/balance-history/PUT/balance_history/deleted/{account_id}/details)
|
|
1721
1754
|
to update the archived source metadata.
|
|
1722
1755
|
additionalProperties: false
|
|
1723
1756
|
properties:
|
|
@@ -1748,11 +1781,11 @@ components:
|
|
|
1748
1781
|
subtype:
|
|
1749
1782
|
type: string
|
|
1750
1783
|
nullable: true
|
|
1751
|
-
description: Archived `subtype
|
|
1784
|
+
description: Archived `subtype` of the deleted account source
|
|
1752
1785
|
mask:
|
|
1753
1786
|
type: string
|
|
1754
1787
|
nullable: true
|
|
1755
|
-
description: Archived account `mask` for a deleted
|
|
1788
|
+
description: Archived account `mask` for a deleted Plaid account source
|
|
1756
1789
|
symbol:
|
|
1757
1790
|
type: string
|
|
1758
1791
|
nullable: true
|
|
@@ -1774,12 +1807,14 @@ components:
|
|
|
1774
1807
|
type: object
|
|
1775
1808
|
title: balance history for an account object
|
|
1776
1809
|
additionalProperties: false
|
|
1777
|
-
description:
|
|
1810
|
+
description: Monthly balance entries grouped under a single account source.
|
|
1778
1811
|
properties:
|
|
1779
1812
|
source:
|
|
1780
1813
|
description: >
|
|
1781
|
-
Identifies the account
|
|
1782
|
-
`source.type`.
|
|
1814
|
+
Identifies the account these balance entries belong to. The shape varies by
|
|
1815
|
+
`source.type`. Each source type exposes a type-specific account id field
|
|
1816
|
+
(`manual_account_id`, `plaid_account_id`, `crypto_manual_id`,
|
|
1817
|
+
`crypto_synced_id`, or `deleted_account_id`).
|
|
1783
1818
|
oneOf:
|
|
1784
1819
|
- $ref: "#/components/schemas/balanceHistorySourceManual"
|
|
1785
1820
|
- $ref: "#/components/schemas/balanceHistorySourcePlaid"
|
|
@@ -1797,38 +1832,48 @@ components:
|
|
|
1797
1832
|
balances:
|
|
1798
1833
|
type: array
|
|
1799
1834
|
description: >
|
|
1800
|
-
Monthly balance
|
|
1801
|
-
|
|
1802
|
-
|
|
1835
|
+
Monthly balance entries for this account source. A `historical` entry is
|
|
1836
|
+
a stored snapshot of a past month and includes an `id`. A `current` entry
|
|
1837
|
+
is an ephemeral snapshot based on the account's current balances and has
|
|
1838
|
+
no balance-entry `id`. On PUT upsert responses, this array includes only
|
|
1839
|
+
the `type: historical` entries modified by that request.
|
|
1803
1840
|
items:
|
|
1804
|
-
$ref: "#/components/schemas/
|
|
1841
|
+
$ref: "#/components/schemas/balanceHistoryEntry"
|
|
1805
1842
|
required:
|
|
1806
1843
|
- source
|
|
1807
1844
|
- balances
|
|
1808
1845
|
|
|
1809
|
-
|
|
1846
|
+
historicalBalanceHistoryEntry:
|
|
1810
1847
|
type: object
|
|
1811
|
-
title: balance history entry
|
|
1848
|
+
title: historical balance history entry
|
|
1812
1849
|
additionalProperties: false
|
|
1813
1850
|
x-internal: true
|
|
1814
|
-
description:
|
|
1851
|
+
description: >
|
|
1852
|
+
A stored monthly balance for a past month. The `id` may be used with
|
|
1853
|
+
balance history entry endpoints. The balance represents the account
|
|
1854
|
+
balance at or around the end of `month`.
|
|
1815
1855
|
properties:
|
|
1856
|
+
type:
|
|
1857
|
+
type: string
|
|
1858
|
+
enum: [historical]
|
|
1859
|
+
description: Identifies this entry as a stored snapshot of a past month.
|
|
1816
1860
|
id:
|
|
1817
1861
|
type: integer
|
|
1818
1862
|
format: int32
|
|
1819
|
-
description: Unique identifier
|
|
1820
|
-
|
|
1863
|
+
description: Unique identifier for this historical balance entry.
|
|
1864
|
+
month:
|
|
1821
1865
|
type: string
|
|
1822
|
-
|
|
1823
|
-
description:
|
|
1866
|
+
pattern: '^\d{4}-(0[1-9]|1[0-2])$'
|
|
1867
|
+
description: Calendar month for this entry in YYYY-MM format.
|
|
1868
|
+
example: "2026-06"
|
|
1824
1869
|
balance:
|
|
1825
1870
|
type: string
|
|
1826
1871
|
pattern: ^-?\d+(\.\d{1,4})?$
|
|
1827
|
-
description: Historical balance
|
|
1872
|
+
description: Historical balance 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.
|
|
1828
1873
|
currency:
|
|
1829
1874
|
allOf:
|
|
1830
1875
|
- $ref: "#/components/schemas/currencyEnum"
|
|
1831
|
-
description: Currency of
|
|
1876
|
+
description: Currency of `balance`. For crypto entries this is the user's primary currency.
|
|
1832
1877
|
to_base:
|
|
1833
1878
|
type: number
|
|
1834
1879
|
format: double
|
|
@@ -1837,19 +1882,82 @@ components:
|
|
|
1837
1882
|
type: string
|
|
1838
1883
|
nullable: true
|
|
1839
1884
|
pattern: ^-?\d+(\.\d{1,18})?$
|
|
1840
|
-
description: Crypto quantity
|
|
1885
|
+
description: Crypto quantity for this balance entry, when available. This may be present for crypto or deleted-account entries and is `null` otherwise.
|
|
1841
1886
|
required:
|
|
1887
|
+
- type
|
|
1842
1888
|
- id
|
|
1843
|
-
-
|
|
1889
|
+
- month
|
|
1890
|
+
- balance
|
|
1891
|
+
- currency
|
|
1892
|
+
- to_base
|
|
1893
|
+
- crypto_balance
|
|
1894
|
+
|
|
1895
|
+
currentBalanceHistoryEntry:
|
|
1896
|
+
type: object
|
|
1897
|
+
title: current balance history entry
|
|
1898
|
+
additionalProperties: false
|
|
1899
|
+
x-internal: true
|
|
1900
|
+
description: >
|
|
1901
|
+
An ephemeral snapshot based on the account's current balances. It may
|
|
1902
|
+
change between requests.
|
|
1903
|
+
properties:
|
|
1904
|
+
type:
|
|
1905
|
+
type: string
|
|
1906
|
+
enum: [current]
|
|
1907
|
+
description: Identifies this entry as an ephemeral current-month snapshot.
|
|
1908
|
+
month:
|
|
1909
|
+
type: string
|
|
1910
|
+
pattern: '^\d{4}-(0[1-9]|1[0-2])$'
|
|
1911
|
+
description: Calendar month for this entry in YYYY-MM format. For current entries this is the current month.
|
|
1912
|
+
example: "2026-07"
|
|
1913
|
+
balance:
|
|
1914
|
+
type: string
|
|
1915
|
+
pattern: ^-?\d+(\.\d{1,4})?$
|
|
1916
|
+
description: Calculated balance for the current month, 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.
|
|
1917
|
+
currency:
|
|
1918
|
+
allOf:
|
|
1919
|
+
- $ref: "#/components/schemas/currencyEnum"
|
|
1920
|
+
description: Currency of the calculated `balance`. For crypto entries this is the user's primary currency.
|
|
1921
|
+
to_base:
|
|
1922
|
+
type: number
|
|
1923
|
+
format: double
|
|
1924
|
+
description: Calculated 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`.
|
|
1925
|
+
crypto_balance:
|
|
1926
|
+
type: string
|
|
1927
|
+
nullable: true
|
|
1928
|
+
pattern: ^-?\d+(\.\d{1,18})?$
|
|
1929
|
+
description: Crypto quantity for this calculated entry, when available. This may be present for crypto entries and is `null` otherwise.
|
|
1930
|
+
required:
|
|
1931
|
+
- type
|
|
1932
|
+
- month
|
|
1844
1933
|
- balance
|
|
1845
1934
|
- currency
|
|
1846
1935
|
- to_base
|
|
1847
1936
|
- crypto_balance
|
|
1848
1937
|
|
|
1938
|
+
balanceHistoryEntry:
|
|
1939
|
+
title: balance history entry
|
|
1940
|
+
x-internal: true
|
|
1941
|
+
description: >
|
|
1942
|
+
A monthly balance history entry. Discriminated by `type`. `historical`
|
|
1943
|
+
entries are stored snapshots of past months with an `id`. `current`
|
|
1944
|
+
entries are ephemeral snapshots with no balance-entry `id`.
|
|
1945
|
+
oneOf:
|
|
1946
|
+
- $ref: "#/components/schemas/historicalBalanceHistoryEntry"
|
|
1947
|
+
- $ref: "#/components/schemas/currentBalanceHistoryEntry"
|
|
1948
|
+
discriminator:
|
|
1949
|
+
propertyName: type
|
|
1950
|
+
mapping:
|
|
1951
|
+
historical: "#/components/schemas/historicalBalanceHistoryEntry"
|
|
1952
|
+
current: "#/components/schemas/currentBalanceHistoryEntry"
|
|
1953
|
+
|
|
1849
1954
|
balanceHistoryListResponseObject:
|
|
1850
1955
|
type: object
|
|
1851
1956
|
additionalProperties: false
|
|
1852
1957
|
x-internal: true
|
|
1958
|
+
description: >
|
|
1959
|
+
List response for balance history GET endpoints. Entries are grouped by
|
|
1960
|
+
account source under `balance_history`.
|
|
1853
1961
|
properties:
|
|
1854
1962
|
balance_history:
|
|
1855
1963
|
type: array
|
|
@@ -1862,31 +1970,39 @@ components:
|
|
|
1862
1970
|
type: object
|
|
1863
1971
|
x-internal: true
|
|
1864
1972
|
additionalProperties: false
|
|
1973
|
+
description: >
|
|
1974
|
+
A single monthly balance entry to upsert. Request bodies use this shape.
|
|
1975
|
+
Responses return `type: historical` entries instead.
|
|
1865
1976
|
properties:
|
|
1866
1977
|
id:
|
|
1867
1978
|
type: integer
|
|
1868
1979
|
format: int32
|
|
1869
1980
|
description: System-defined balance history entry id. Ignored if set.
|
|
1870
1981
|
x-updatable: false
|
|
1871
|
-
|
|
1982
|
+
month:
|
|
1872
1983
|
type: string
|
|
1873
|
-
|
|
1874
|
-
description:
|
|
1984
|
+
pattern: '^\d{4}-(0[1-9]|1[0-2])$'
|
|
1985
|
+
description: >
|
|
1986
|
+
Calendar month to upsert, in YYYY-MM format. Must be a past month.
|
|
1987
|
+
The current month cannot be written through PUT endpoints.
|
|
1988
|
+
example: "2026-06"
|
|
1875
1989
|
balance:
|
|
1876
1990
|
oneOf:
|
|
1877
1991
|
- type: number
|
|
1878
1992
|
format: double
|
|
1879
1993
|
- type: string
|
|
1880
1994
|
pattern: ^-?\d+(\.\d{1,4})?$
|
|
1881
|
-
description: Numeric value of the historical balance, up to four decimal places, as a number or string. For manual and Plaid accounts this is
|
|
1995
|
+
description: Numeric value of the historical balance, up to four decimal places, as a number or string. For manual and Plaid accounts this is in the account currency. For crypto and deleted accounts this is in the user's primary currency. Do not include any special characters aside from a decimal point.
|
|
1882
1996
|
symbol:
|
|
1883
1997
|
type: string
|
|
1884
1998
|
nullable: true
|
|
1885
1999
|
minLength: 1
|
|
1886
2000
|
maxLength: 25
|
|
1887
|
-
description:
|
|
1888
|
-
|
|
1889
|
-
|
|
2001
|
+
description: >
|
|
2002
|
+
Optional for crypto balances. If set, it must match the account's
|
|
2003
|
+
symbol. Tolerated for deleted-account balances. Do not provide this
|
|
2004
|
+
for manual or Plaid balances. On the synced crypto path endpoint, if
|
|
2005
|
+
provided it must match the `symbol` path parameter.
|
|
1890
2006
|
x-updatable: true
|
|
1891
2007
|
crypto_balance:
|
|
1892
2008
|
type: string
|
|
@@ -1902,10 +2018,10 @@ components:
|
|
|
1902
2018
|
to_base:
|
|
1903
2019
|
type: number
|
|
1904
2020
|
format: double
|
|
1905
|
-
description: System-defined historical balance converted to the user's primary currency. Ignored if set. Use `balance` to update the
|
|
2021
|
+
description: System-defined historical balance converted to the user's primary currency. Ignored if set. Use `balance` to update the historical balance.
|
|
1906
2022
|
x-updatable: false
|
|
1907
2023
|
required:
|
|
1908
|
-
-
|
|
2024
|
+
- month
|
|
1909
2025
|
- balance
|
|
1910
2026
|
|
|
1911
2027
|
upsertBalanceHistoryRequestObject:
|
|
@@ -1916,7 +2032,11 @@ components:
|
|
|
1916
2032
|
balances:
|
|
1917
2033
|
type: array
|
|
1918
2034
|
minItems: 1
|
|
1919
|
-
description:
|
|
2035
|
+
description: >
|
|
2036
|
+
One or more monthly balance history entries to upsert. Each entry uses
|
|
2037
|
+
`month` (YYYY-MM) and `balance`. Do not include response-only fields such
|
|
2038
|
+
as `type`. PUT responses return only the `type: historical` entries
|
|
2039
|
+
modified by the request.
|
|
1920
2040
|
items:
|
|
1921
2041
|
$ref: "#/components/schemas/balanceHistoryUpdateItemObject"
|
|
1922
2042
|
required:
|
|
@@ -1931,51 +2051,58 @@ components:
|
|
|
1931
2051
|
name:
|
|
1932
2052
|
type: string
|
|
1933
2053
|
nullable: true
|
|
1934
|
-
description: New archived account name for the deleted account source
|
|
2054
|
+
description: New archived account name for the deleted account source
|
|
1935
2055
|
institution_name:
|
|
1936
2056
|
type: string
|
|
1937
2057
|
nullable: true
|
|
1938
|
-
description: New archived institution name for the deleted account source
|
|
2058
|
+
description: New archived institution name for the deleted account source
|
|
1939
2059
|
display_name:
|
|
1940
2060
|
type: string
|
|
1941
2061
|
nullable: true
|
|
1942
|
-
description: New display name for the deleted account source
|
|
2062
|
+
description: New display name for the deleted account source
|
|
1943
2063
|
account_type:
|
|
1944
2064
|
type: string
|
|
1945
2065
|
nullable: true
|
|
1946
|
-
description: New archived account type for the deleted account source
|
|
2066
|
+
description: New archived account type for the deleted account source
|
|
1947
2067
|
subtype:
|
|
1948
2068
|
type: string
|
|
1949
2069
|
nullable: true
|
|
1950
|
-
description: New archived subtype for the deleted account source
|
|
2070
|
+
description: New archived subtype for the deleted account source
|
|
1951
2071
|
mask:
|
|
1952
2072
|
type: string
|
|
1953
2073
|
nullable: true
|
|
1954
|
-
description: New archived account mask for the deleted account source
|
|
2074
|
+
description: New archived account mask for the deleted account source
|
|
1955
2075
|
|
|
1956
2076
|
updateBalanceHistoryDetailsResponseObject:
|
|
1957
2077
|
type: object
|
|
1958
2078
|
x-internal: true
|
|
1959
2079
|
additionalProperties: false
|
|
2080
|
+
description: Updated archived metadata for a deleted balance history source
|
|
1960
2081
|
properties:
|
|
1961
2082
|
name:
|
|
1962
2083
|
type: string
|
|
1963
2084
|
nullable: true
|
|
2085
|
+
description: Archived account name for the deleted account source
|
|
1964
2086
|
institution_name:
|
|
1965
2087
|
type: string
|
|
1966
2088
|
nullable: true
|
|
2089
|
+
description: Archived institution name for the deleted account source
|
|
1967
2090
|
display_name:
|
|
1968
2091
|
type: string
|
|
1969
2092
|
nullable: true
|
|
2093
|
+
description: Archived display name for the deleted account source
|
|
1970
2094
|
account_type:
|
|
1971
2095
|
type: string
|
|
1972
2096
|
nullable: true
|
|
2097
|
+
description: Archived account type for the deleted account source
|
|
1973
2098
|
subtype:
|
|
1974
2099
|
type: string
|
|
1975
2100
|
nullable: true
|
|
2101
|
+
description: Archived subtype for the deleted account source
|
|
1976
2102
|
mask:
|
|
1977
2103
|
type: string
|
|
1978
2104
|
nullable: true
|
|
2105
|
+
description: Archived account mask for the deleted account source
|
|
1979
2106
|
required:
|
|
1980
2107
|
- name
|
|
1981
2108
|
- institution_name
|
|
@@ -2931,7 +3058,7 @@ components:
|
|
|
2931
3058
|
currency:
|
|
2932
3059
|
description: Three-letter lowercase currency code of the transaction
|
|
2933
3060
|
in ISO 4217 format. Must match one of the [supported
|
|
2934
|
-
currencies](https://
|
|
3061
|
+
currencies](https://lunchmoney.dev/v2/currencies). If not set
|
|
2935
3062
|
defaults to the user account's primary currency.
|
|
2936
3063
|
allOf:
|
|
2937
3064
|
- $ref: "#/components/schemas/currencyEnum"
|
|
@@ -3076,6 +3203,7 @@ components:
|
|
|
3076
3203
|
description: |
|
|
3077
3204
|
The new payee for the transaction.
|
|
3078
3205
|
minLength: 0
|
|
3206
|
+
x-updatable: true
|
|
3079
3207
|
original_name:
|
|
3080
3208
|
type: string
|
|
3081
3209
|
nullable: true
|
|
@@ -3287,9 +3415,10 @@ components:
|
|
|
3287
3415
|
category_id:
|
|
3288
3416
|
type: integer
|
|
3289
3417
|
format: int32
|
|
3290
|
-
|
|
3291
|
-
|
|
3292
|
-
|
|
3418
|
+
nullable: true
|
|
3419
|
+
description: Category ID for the child transaction. The category must
|
|
3420
|
+
already exist for the account. If omitted, the child inherits the
|
|
3421
|
+
parent category. If `null`, the child has no category.
|
|
3293
3422
|
tag_ids:
|
|
3294
3423
|
type: array
|
|
3295
3424
|
description: The IDs of any tags to apply to this split child
|
|
@@ -3299,7 +3428,10 @@ components:
|
|
|
3299
3428
|
format: int32
|
|
3300
3429
|
notes:
|
|
3301
3430
|
type: string
|
|
3302
|
-
|
|
3431
|
+
nullable: true
|
|
3432
|
+
description: Notes for the child transaction. If omitted, the child
|
|
3433
|
+
inherits the parent notes. If `null` or an empty string, the child
|
|
3434
|
+
has no notes.
|
|
3303
3435
|
required:
|
|
3304
3436
|
- amount
|
|
3305
3437
|
|
|
@@ -3611,7 +3743,7 @@ components:
|
|
|
3611
3743
|
type: object
|
|
3612
3744
|
title: budget settings object
|
|
3613
3745
|
additionalProperties: false
|
|
3614
|
-
description: Budget period and display settings for the current
|
|
3746
|
+
description: Budget period and display settings for the current budget
|
|
3615
3747
|
account.
|
|
3616
3748
|
properties:
|
|
3617
3749
|
budget_period_granularity:
|
|
@@ -3667,6 +3799,530 @@ components:
|
|
|
3667
3799
|
- budget_income_option
|
|
3668
3800
|
- budget_rollover_left_to_budget
|
|
3669
3801
|
|
|
3802
|
+
weekStartsOnEnum:
|
|
3803
|
+
x-internal: true
|
|
3804
|
+
type: string
|
|
3805
|
+
title: week starts on enum
|
|
3806
|
+
enum:
|
|
3807
|
+
- sunday
|
|
3808
|
+
- monday
|
|
3809
|
+
description: The day on which a calendar week begins.
|
|
3810
|
+
|
|
3811
|
+
monthYearFormatEnum:
|
|
3812
|
+
x-internal: true
|
|
3813
|
+
type: string
|
|
3814
|
+
title: month and year format enum
|
|
3815
|
+
description: Format string for displaying month and year values
|
|
3816
|
+
in the Lunch Money app.
|
|
3817
|
+
enum:
|
|
3818
|
+
- "MMMM YYYY"
|
|
3819
|
+
- "MMM YYYY"
|
|
3820
|
+
- "YYYY MMM"
|
|
3821
|
+
- "MM YYYY"
|
|
3822
|
+
- "MM-YYYY"
|
|
3823
|
+
- "MM.YYYY"
|
|
3824
|
+
- "MM/YYYY"
|
|
3825
|
+
- "M YYYY"
|
|
3826
|
+
- "M-YYYY"
|
|
3827
|
+
- "M.YYYY"
|
|
3828
|
+
- "M/YYYY"
|
|
3829
|
+
- "YYYY M"
|
|
3830
|
+
- "YYYY-M"
|
|
3831
|
+
- "YYYY.M"
|
|
3832
|
+
- "YYYY/M"
|
|
3833
|
+
- "YYYY MM"
|
|
3834
|
+
- "YYYY-MM"
|
|
3835
|
+
- "YYYY.MM"
|
|
3836
|
+
- "YYYY/MM"
|
|
3837
|
+
|
|
3838
|
+
monthDayYearFormatEnum:
|
|
3839
|
+
x-internal: true
|
|
3840
|
+
type: string
|
|
3841
|
+
title: month, day and year format enum
|
|
3842
|
+
description: Format string for displaying full dates in the
|
|
3843
|
+
Lunch Money app.
|
|
3844
|
+
enum:
|
|
3845
|
+
- "MMM D, YYYY"
|
|
3846
|
+
- "D MMM YYYY"
|
|
3847
|
+
- "YYYY MM DD"
|
|
3848
|
+
- "YYYY-MM-DD"
|
|
3849
|
+
- "YYYY.MM.DD"
|
|
3850
|
+
- "YYYY/MM/DD"
|
|
3851
|
+
- "YYYY M DD"
|
|
3852
|
+
- "YYYY-M-DD"
|
|
3853
|
+
- "YYYY.M.DD"
|
|
3854
|
+
- "YYYY/M/DD"
|
|
3855
|
+
- "YYYY MM D"
|
|
3856
|
+
- "YYYY-MM-D"
|
|
3857
|
+
- "YYYY.MM.D"
|
|
3858
|
+
- "YYYY/MM/D"
|
|
3859
|
+
- "YYYY M D"
|
|
3860
|
+
- "YYYY-M-D"
|
|
3861
|
+
- "YYYY.M.D"
|
|
3862
|
+
- "YYYY/M/D"
|
|
3863
|
+
- "DD MM YYYY"
|
|
3864
|
+
- "DD-MM-YYYY"
|
|
3865
|
+
- "DD.MM.YYYY"
|
|
3866
|
+
- "DD/MM/YYYY"
|
|
3867
|
+
- "DD M YYYY"
|
|
3868
|
+
- "DD-M-YYYY"
|
|
3869
|
+
- "DD.M.YYYY"
|
|
3870
|
+
- "DD/M/YYYY"
|
|
3871
|
+
- "D MM YYYY"
|
|
3872
|
+
- "D-MM-YYYY"
|
|
3873
|
+
- "D.MM.YYYY"
|
|
3874
|
+
- "D/MM/YYYY"
|
|
3875
|
+
- "D M YYYY"
|
|
3876
|
+
- "D-M-YYYY"
|
|
3877
|
+
- "D.M.YYYY"
|
|
3878
|
+
- "D/M/YYYY"
|
|
3879
|
+
- "M D YYYY"
|
|
3880
|
+
- "M-D-YYYY"
|
|
3881
|
+
- "M.D.YYYY"
|
|
3882
|
+
- "M/D/YYYY"
|
|
3883
|
+
- "MM D YYYY"
|
|
3884
|
+
- "MM-D-YYYY"
|
|
3885
|
+
- "MM.D.YYYY"
|
|
3886
|
+
- "MM/D/YYYY"
|
|
3887
|
+
- "MM DD YYYY"
|
|
3888
|
+
- "MM-DD-YYYY"
|
|
3889
|
+
- "MM.DD.YYYY"
|
|
3890
|
+
- "MM/DD/YYYY"
|
|
3891
|
+
- "M DD YYYY"
|
|
3892
|
+
- "M-DD-YYYY"
|
|
3893
|
+
- "M.DD.YYYY"
|
|
3894
|
+
- "M/DD/YYYY"
|
|
3895
|
+
|
|
3896
|
+
monthDayFormatEnum:
|
|
3897
|
+
x-internal: true
|
|
3898
|
+
type: string
|
|
3899
|
+
title: month and day format enum
|
|
3900
|
+
description: Format string for displaying month and day values
|
|
3901
|
+
without a year.
|
|
3902
|
+
enum:
|
|
3903
|
+
- "MMM D"
|
|
3904
|
+
- "MMM DD"
|
|
3905
|
+
- "D MMM"
|
|
3906
|
+
- "DD MMM"
|
|
3907
|
+
- "MM D"
|
|
3908
|
+
- "MM-D"
|
|
3909
|
+
- "MM.D"
|
|
3910
|
+
- "MM/D"
|
|
3911
|
+
- "MM DD"
|
|
3912
|
+
- "MM-DD"
|
|
3913
|
+
- "MM.DD"
|
|
3914
|
+
- "MM/DD"
|
|
3915
|
+
- "M D"
|
|
3916
|
+
- "M-D"
|
|
3917
|
+
- "M.D"
|
|
3918
|
+
- "M/D"
|
|
3919
|
+
- "M DD"
|
|
3920
|
+
- "M-DD"
|
|
3921
|
+
- "M.DD"
|
|
3922
|
+
- "M/DD"
|
|
3923
|
+
- "D MM"
|
|
3924
|
+
- "D-MM"
|
|
3925
|
+
- "D.MM"
|
|
3926
|
+
- "D/MM"
|
|
3927
|
+
- "DD MM"
|
|
3928
|
+
- "DD-MM"
|
|
3929
|
+
- "DD.MM"
|
|
3930
|
+
- "DD/MM"
|
|
3931
|
+
- "D M"
|
|
3932
|
+
- "D-M"
|
|
3933
|
+
- "D.M"
|
|
3934
|
+
- "D/M"
|
|
3935
|
+
- "DD M"
|
|
3936
|
+
- "DD-M"
|
|
3937
|
+
- "DD.M"
|
|
3938
|
+
- "DD/M"
|
|
3939
|
+
|
|
3940
|
+
localeEnum:
|
|
3941
|
+
type: string
|
|
3942
|
+
title: locale enum
|
|
3943
|
+
description: Locale used for formatting numbers and currency amounts in
|
|
3944
|
+
the Lunch Money app.
|
|
3945
|
+
example: en-US
|
|
3946
|
+
enum:
|
|
3947
|
+
- sq-AL # Albanian (Albania)
|
|
3948
|
+
- be-BY # Belarusian (Belarus)
|
|
3949
|
+
- bg-BG # Bulgarian (Bulgaria)
|
|
3950
|
+
- ca-ES # Catalan (Spain)
|
|
3951
|
+
- zh-CN # Chinese (Simplified) (China)
|
|
3952
|
+
- zh-HK # Chinese (Traditional) (Hong Kong)
|
|
3953
|
+
- zh-TW # Chinese (Traditional) (Taiwan)
|
|
3954
|
+
- hr-HR # Croatian (Croatia)
|
|
3955
|
+
- cs-CZ # Czech (Czech Republic)
|
|
3956
|
+
- da-DK # Danish (Denmark)
|
|
3957
|
+
- nl-BE # Dutch (Belgium)
|
|
3958
|
+
- nl-NL # Dutch (Netherlands)
|
|
3959
|
+
- en-AU # English (Australia)
|
|
3960
|
+
- en-CA # English (Canada)
|
|
3961
|
+
- en-IN # English (India)
|
|
3962
|
+
- en-IE # English (Ireland)
|
|
3963
|
+
- en-MT # English (Malta)
|
|
3964
|
+
- en-NZ # English (New Zealand)
|
|
3965
|
+
- en-PH # English (Philippines)
|
|
3966
|
+
- en-SG # English (Singapore)
|
|
3967
|
+
- en-ZA # English (South Africa)
|
|
3968
|
+
- en-GB # English (United Kingdom)
|
|
3969
|
+
- en-US # English (United States)
|
|
3970
|
+
- et-EE # Estonian (Estonia)
|
|
3971
|
+
- fi-FI # Finnish (Finland)
|
|
3972
|
+
- fr-BE # French (Belgium)
|
|
3973
|
+
- fr-CA # French (Canada)
|
|
3974
|
+
- fr-FR # French (France)
|
|
3975
|
+
- fr-LU # French (Luxembourg)
|
|
3976
|
+
- fr-CH # French (Switzerland)
|
|
3977
|
+
- de-AT # German (Austria)
|
|
3978
|
+
- de-DE # German (Germany)
|
|
3979
|
+
- de-LU # German (Luxembourg)
|
|
3980
|
+
- de-CH # German (Switzerland)
|
|
3981
|
+
- el-CY # Greek (Cyprus)
|
|
3982
|
+
- el-GR # Greek (Greece)
|
|
3983
|
+
- iw-IL # Hebrew (Israel); modern replacement: he-IL
|
|
3984
|
+
- hi-IN # Hindi (India)
|
|
3985
|
+
- hu-HU # Hungarian (Hungary)
|
|
3986
|
+
- is-IS # Icelandic (Iceland)
|
|
3987
|
+
- in-ID # Indonesian (Indonesia); modern replacement: id-ID
|
|
3988
|
+
- ga-IE # Irish (Ireland)
|
|
3989
|
+
- it-IT # Italian (Italy)
|
|
3990
|
+
- it-CH # Italian (Switzerland)
|
|
3991
|
+
- ja-JP # Japanese (Japan)
|
|
3992
|
+
- ko-KR # Korean (South Korea)
|
|
3993
|
+
- lv-LV # Latvian (Latvia)
|
|
3994
|
+
- lt-LT # Lithuanian (Lithuania)
|
|
3995
|
+
- mk-MK # Macedonian (Macedonia)
|
|
3996
|
+
- ms-MY # Malay (Malaysia)
|
|
3997
|
+
- mt-MT # Maltese (Malta)
|
|
3998
|
+
- no-NO # Norwegian (Norway)
|
|
3999
|
+
- pl-PL # Polish (Poland)
|
|
4000
|
+
- pt-BR # Portuguese (Brazil)
|
|
4001
|
+
- pt-PT # Portuguese (Portugal)
|
|
4002
|
+
- ro-RO # Romanian (Romania)
|
|
4003
|
+
- ru-RU # Russian (Russia)
|
|
4004
|
+
- sk-SK # Slovak (Slovakia)
|
|
4005
|
+
- sl-SI # Slovenian (Slovenia)
|
|
4006
|
+
- es-AR # Spanish (Argentina)
|
|
4007
|
+
- es-BO # Spanish (Bolivia)
|
|
4008
|
+
- es-CL # Spanish (Chile)
|
|
4009
|
+
- es-CO # Spanish (Colombia)
|
|
4010
|
+
- es-CR # Spanish (Costa Rica)
|
|
4011
|
+
- es-DO # Spanish (Dominican Republic)
|
|
4012
|
+
- es-EC # Spanish (Ecuador)
|
|
4013
|
+
- es-SV # Spanish (El Salvador)
|
|
4014
|
+
- es-GT # Spanish (Guatemala)
|
|
4015
|
+
- es-HN # Spanish (Honduras)
|
|
4016
|
+
- es-MX # Spanish (Mexico)
|
|
4017
|
+
- es-NI # Spanish (Nicaragua)
|
|
4018
|
+
- es-PA # Spanish (Panama)
|
|
4019
|
+
- es-PY # Spanish (Paraguay)
|
|
4020
|
+
- es-PE # Spanish (Peru)
|
|
4021
|
+
- es-PR # Spanish (Puerto Rico)
|
|
4022
|
+
- es-ES # Spanish (Spain)
|
|
4023
|
+
- es-US # Spanish (United States)
|
|
4024
|
+
- es-UY # Spanish (Uruguay)
|
|
4025
|
+
- es-VE # Spanish (Venezuela)
|
|
4026
|
+
- sv-SE # Swedish (Sweden)
|
|
4027
|
+
- th-TH # Thai (Thailand)
|
|
4028
|
+
- tr-TR # Turkish (Turkey)
|
|
4029
|
+
- uk-UA # Ukrainian (Ukraine)
|
|
4030
|
+
- vi-VN # Vietnamese (Vietnam)
|
|
4031
|
+
|
|
4032
|
+
accountSettingsObject:
|
|
4033
|
+
type: object
|
|
4034
|
+
title: account settings object
|
|
4035
|
+
additionalProperties: false
|
|
4036
|
+
description: Account-level settings for the budget account
|
|
4037
|
+
associated with the authorized API token.
|
|
4038
|
+
properties:
|
|
4039
|
+
primary_currency:
|
|
4040
|
+
description: Primary currency for the account.
|
|
4041
|
+
allOf:
|
|
4042
|
+
- $ref: "#/components/schemas/currencyEnum"
|
|
4043
|
+
supported_currencies:
|
|
4044
|
+
type: array
|
|
4045
|
+
items:
|
|
4046
|
+
$ref: "#/components/schemas/currencyEnum"
|
|
4047
|
+
description: Currencies available when creating or editing transactions,
|
|
4048
|
+
balances, and other amounts in the Lunch Money app.
|
|
4049
|
+
display_name:
|
|
4050
|
+
type: string
|
|
4051
|
+
nullable: true
|
|
4052
|
+
description: Display name of the budget account in the Lunch Money
|
|
4053
|
+
app.
|
|
4054
|
+
locale:
|
|
4055
|
+
allOf:
|
|
4056
|
+
- $ref: "#/components/schemas/localeEnum"
|
|
4057
|
+
example: en-US
|
|
4058
|
+
description: Locale used for formatting numbers and currency amounts
|
|
4059
|
+
in the Lunch Money app (for example, `en-US`). See
|
|
4060
|
+
[Supported Locales](https://lunchmoney.dev/v2/locales) for accepted
|
|
4061
|
+
values. Date presentation is configured separately through
|
|
4062
|
+
[GET /me/user/settings](#tag/me/GET/me/user/settings) and
|
|
4063
|
+
[PUT /me/user/settings](#tag/me/PUT/me/user/settings). When no
|
|
4064
|
+
locale is explicitly stored for the account, the effective locale
|
|
4065
|
+
is derived from the `default_locale` associated with
|
|
4066
|
+
`primary_currency` in the currencies table (for example, `usd` →
|
|
4067
|
+
`en-US`, `cad` → `en-CA`, `gbp` → `en-GB`).
|
|
4068
|
+
auto_create_category_rules:
|
|
4069
|
+
type: boolean
|
|
4070
|
+
default: true
|
|
4071
|
+
description: If `true`, category rules are created automatically when
|
|
4072
|
+
categorizing transactions.
|
|
4073
|
+
auto_create_suggested_transaction_rules:
|
|
4074
|
+
type: boolean
|
|
4075
|
+
default: true
|
|
4076
|
+
description: If `true`, suggested transaction rules are created
|
|
4077
|
+
automatically.
|
|
4078
|
+
include_pending_in_totals:
|
|
4079
|
+
type: boolean
|
|
4080
|
+
default: true
|
|
4081
|
+
description: If `true`, pending transactions are included in account
|
|
4082
|
+
totals.
|
|
4083
|
+
required:
|
|
4084
|
+
- primary_currency
|
|
4085
|
+
- supported_currencies
|
|
4086
|
+
- display_name
|
|
4087
|
+
- locale
|
|
4088
|
+
- auto_create_category_rules
|
|
4089
|
+
- auto_create_suggested_transaction_rules
|
|
4090
|
+
- include_pending_in_totals
|
|
4091
|
+
|
|
4092
|
+
updateAccountSettingsRequestObject:
|
|
4093
|
+
x-internal: true
|
|
4094
|
+
type: object
|
|
4095
|
+
additionalProperties: false
|
|
4096
|
+
minProperties: 1
|
|
4097
|
+
description: Request body for updating account settings. Include at least
|
|
4098
|
+
one property to update.
|
|
4099
|
+
properties:
|
|
4100
|
+
primary_currency:
|
|
4101
|
+
allOf:
|
|
4102
|
+
- $ref: "#/components/schemas/currencyEnum"
|
|
4103
|
+
description: If set, updates the account's primary currency.
|
|
4104
|
+
x-updatable: true
|
|
4105
|
+
supported_currencies:
|
|
4106
|
+
type: array
|
|
4107
|
+
items:
|
|
4108
|
+
$ref: "#/components/schemas/currencyEnum"
|
|
4109
|
+
description: If set, replaces the list of supported currencies for the
|
|
4110
|
+
account.
|
|
4111
|
+
x-updatable: true
|
|
4112
|
+
display_name:
|
|
4113
|
+
type: string
|
|
4114
|
+
nullable: true
|
|
4115
|
+
description: If set, updates the display name of the budget account.
|
|
4116
|
+
x-updatable: true
|
|
4117
|
+
locale:
|
|
4118
|
+
allOf:
|
|
4119
|
+
- $ref: "#/components/schemas/localeEnum"
|
|
4120
|
+
example: en-US
|
|
4121
|
+
description: If set, updates the locale used for formatting numbers
|
|
4122
|
+
and currency amounts in the Lunch Money app. See
|
|
4123
|
+
[Supported Locales](https://lunchmoney.dev/v2/locales) for accepted
|
|
4124
|
+
values. Date presentation is configured separately through
|
|
4125
|
+
[GET /me/user/settings](#tag/me/GET/me/user/settings) and
|
|
4126
|
+
[PUT /me/user/settings](#tag/me/PUT/me/user/settings).
|
|
4127
|
+
x-updatable: true
|
|
4128
|
+
auto_create_category_rules:
|
|
4129
|
+
type: boolean
|
|
4130
|
+
description: If set, updates whether category rules are created
|
|
4131
|
+
automatically.
|
|
4132
|
+
x-updatable: true
|
|
4133
|
+
auto_create_suggested_transaction_rules:
|
|
4134
|
+
type: boolean
|
|
4135
|
+
description: If set, updates whether suggested transaction rules are
|
|
4136
|
+
created automatically.
|
|
4137
|
+
x-updatable: true
|
|
4138
|
+
include_pending_in_totals:
|
|
4139
|
+
type: boolean
|
|
4140
|
+
description: If set, updates whether pending transactions are included
|
|
4141
|
+
in account totals.
|
|
4142
|
+
x-updatable: true
|
|
4143
|
+
|
|
4144
|
+
userAccountSettingsObject:
|
|
4145
|
+
type: object
|
|
4146
|
+
title: user account settings object
|
|
4147
|
+
additionalProperties: false
|
|
4148
|
+
description: Settings specific to the authorized user within the current
|
|
4149
|
+
budget account.
|
|
4150
|
+
properties:
|
|
4151
|
+
auto_review_transaction_on_update:
|
|
4152
|
+
type: boolean
|
|
4153
|
+
default: true
|
|
4154
|
+
description: If `true`, transactions are marked as reviewed when their
|
|
4155
|
+
date, category, payee, amount, account, or notes are changed.
|
|
4156
|
+
auto_review_transaction_on_creation:
|
|
4157
|
+
type: boolean
|
|
4158
|
+
default: true
|
|
4159
|
+
description: If `true`, new manual transactions start as reviewed. If
|
|
4160
|
+
`false`, they start as unreviewed.
|
|
4161
|
+
default_manual_account_id:
|
|
4162
|
+
type: integer
|
|
4163
|
+
nullable: true
|
|
4164
|
+
description: Manual account selected by default when the user creates a
|
|
4165
|
+
manual transaction in the current budget account. Must identify a
|
|
4166
|
+
manual account returned by
|
|
4167
|
+
[GET /manual_accounts](#tag/manual_accounts/GET/manual_accounts) for
|
|
4168
|
+
the current budget account. Set to `null` to clear the selection.
|
|
4169
|
+
required:
|
|
4170
|
+
- auto_review_transaction_on_update
|
|
4171
|
+
- auto_review_transaction_on_creation
|
|
4172
|
+
- default_manual_account_id
|
|
4173
|
+
|
|
4174
|
+
updateUserAccountSettingsRequestObject:
|
|
4175
|
+
x-internal: true
|
|
4176
|
+
type: object
|
|
4177
|
+
additionalProperties: false
|
|
4178
|
+
minProperties: 1
|
|
4179
|
+
description: Request body for updating settings specific to the authorized
|
|
4180
|
+
user within the current budget account. Include at least one property
|
|
4181
|
+
to update.
|
|
4182
|
+
properties:
|
|
4183
|
+
auto_review_transaction_on_update:
|
|
4184
|
+
type: boolean
|
|
4185
|
+
description: If set, updates whether transactions are marked as reviewed
|
|
4186
|
+
when their date, category, payee, amount, account, or notes are
|
|
4187
|
+
changed.
|
|
4188
|
+
x-updatable: true
|
|
4189
|
+
auto_review_transaction_on_creation:
|
|
4190
|
+
type: boolean
|
|
4191
|
+
description: If set, updates whether new manual transactions start as
|
|
4192
|
+
reviewed or unreviewed.
|
|
4193
|
+
x-updatable: true
|
|
4194
|
+
default_manual_account_id:
|
|
4195
|
+
type: integer
|
|
4196
|
+
nullable: true
|
|
4197
|
+
description: If set, updates the manual account selected by default when
|
|
4198
|
+
the user creates a manual transaction in the current budget
|
|
4199
|
+
account. Must identify a manual account returned by
|
|
4200
|
+
[GET /manual_accounts](#tag/manual_accounts/GET/manual_accounts) for
|
|
4201
|
+
the current budget account. Set to `null` to clear the selection.
|
|
4202
|
+
x-updatable: true
|
|
4203
|
+
|
|
4204
|
+
userSettingsObject:
|
|
4205
|
+
type: object
|
|
4206
|
+
title: user settings object
|
|
4207
|
+
additionalProperties: false
|
|
4208
|
+
description: User-level display and formatting preferences for the user
|
|
4209
|
+
associated with the authorized API token.
|
|
4210
|
+
properties:
|
|
4211
|
+
show_debits_as_negative:
|
|
4212
|
+
type: boolean
|
|
4213
|
+
default: true
|
|
4214
|
+
description: Display preference for how amounts are shown in the Lunch
|
|
4215
|
+
Money app. When `true`, debits are shown as negative values and
|
|
4216
|
+
credits as positive values.<p> This setting does **not** change
|
|
4217
|
+
amount sign conventions in API responses. Amount fields such as
|
|
4218
|
+
`amount` and `to_base` on transaction objects always use positive
|
|
4219
|
+
values for debits and negative values for credits.
|
|
4220
|
+
auto_suggest_payee:
|
|
4221
|
+
type: boolean
|
|
4222
|
+
default: true
|
|
4223
|
+
description: If `true`, payee suggestions are shown when entering
|
|
4224
|
+
transactions in the Lunch Money app.
|
|
4225
|
+
month_year_format:
|
|
4226
|
+
allOf:
|
|
4227
|
+
- $ref: "#/components/schemas/monthYearFormatEnum"
|
|
4228
|
+
default: "MMM YYYY"
|
|
4229
|
+
description: Format string used when displaying month and year values.
|
|
4230
|
+
month_day_year_format:
|
|
4231
|
+
allOf:
|
|
4232
|
+
- $ref: "#/components/schemas/monthDayYearFormatEnum"
|
|
4233
|
+
default: "MMM D, YYYY"
|
|
4234
|
+
description: Format string used when displaying full dates (month, day,
|
|
4235
|
+
and year).
|
|
4236
|
+
month_day_format:
|
|
4237
|
+
allOf:
|
|
4238
|
+
- $ref: "#/components/schemas/monthDayFormatEnum"
|
|
4239
|
+
default: "MMM D"
|
|
4240
|
+
description: Format string used when displaying month and day values
|
|
4241
|
+
without a year.
|
|
4242
|
+
show_am_pm:
|
|
4243
|
+
type: boolean
|
|
4244
|
+
default: true
|
|
4245
|
+
description: If `true`, times are displayed using a 12-hour clock with
|
|
4246
|
+
AM/PM. If `false`, times are displayed using a 24-hour clock.
|
|
4247
|
+
week_starts_on:
|
|
4248
|
+
allOf:
|
|
4249
|
+
- $ref: "#/components/schemas/weekStartsOnEnum"
|
|
4250
|
+
default: sunday
|
|
4251
|
+
description: The day on which a calendar week begins.
|
|
4252
|
+
always_display_year:
|
|
4253
|
+
type: boolean
|
|
4254
|
+
default: false
|
|
4255
|
+
description: If `true`, dates always include the year and
|
|
4256
|
+
`month_day_format` is not used.
|
|
4257
|
+
always_display_weekday:
|
|
4258
|
+
type: boolean
|
|
4259
|
+
default: true
|
|
4260
|
+
description: If `true`, weekday names are included when displaying
|
|
4261
|
+
dates.
|
|
4262
|
+
required:
|
|
4263
|
+
- show_debits_as_negative
|
|
4264
|
+
- auto_suggest_payee
|
|
4265
|
+
- month_year_format
|
|
4266
|
+
- month_day_year_format
|
|
4267
|
+
- month_day_format
|
|
4268
|
+
- show_am_pm
|
|
4269
|
+
- week_starts_on
|
|
4270
|
+
- always_display_year
|
|
4271
|
+
- always_display_weekday
|
|
4272
|
+
|
|
4273
|
+
updateUserSettingsRequestObject:
|
|
4274
|
+
x-internal: true
|
|
4275
|
+
type: object
|
|
4276
|
+
additionalProperties: false
|
|
4277
|
+
minProperties: 1
|
|
4278
|
+
description: Request body for updating user settings. Include at least one
|
|
4279
|
+
property to update.
|
|
4280
|
+
properties:
|
|
4281
|
+
show_debits_as_negative:
|
|
4282
|
+
type: boolean
|
|
4283
|
+
description: If set, updates the display preference for amount signs in
|
|
4284
|
+
the Lunch Money app. Does not affect amount sign conventions in API
|
|
4285
|
+
responses.
|
|
4286
|
+
x-updatable: true
|
|
4287
|
+
auto_suggest_payee:
|
|
4288
|
+
type: boolean
|
|
4289
|
+
description: If set, updates whether payee suggestions are shown.
|
|
4290
|
+
x-updatable: true
|
|
4291
|
+
month_year_format:
|
|
4292
|
+
allOf:
|
|
4293
|
+
- $ref: "#/components/schemas/monthYearFormatEnum"
|
|
4294
|
+
description: If set, updates the month and year display format.
|
|
4295
|
+
x-updatable: true
|
|
4296
|
+
month_day_year_format:
|
|
4297
|
+
allOf:
|
|
4298
|
+
- $ref: "#/components/schemas/monthDayYearFormatEnum"
|
|
4299
|
+
description: If set, updates the full date display format.
|
|
4300
|
+
x-updatable: true
|
|
4301
|
+
month_day_format:
|
|
4302
|
+
allOf:
|
|
4303
|
+
- $ref: "#/components/schemas/monthDayFormatEnum"
|
|
4304
|
+
description: If set, updates the month and day display format.
|
|
4305
|
+
x-updatable: true
|
|
4306
|
+
show_am_pm:
|
|
4307
|
+
type: boolean
|
|
4308
|
+
description: If set, updates whether times use a 12-hour (AM/PM) or
|
|
4309
|
+
24-hour clock.
|
|
4310
|
+
x-updatable: true
|
|
4311
|
+
week_starts_on:
|
|
4312
|
+
allOf:
|
|
4313
|
+
- $ref: "#/components/schemas/weekStartsOnEnum"
|
|
4314
|
+
description: If set, updates the day on which a calendar week begins.
|
|
4315
|
+
x-updatable: true
|
|
4316
|
+
always_display_year:
|
|
4317
|
+
type: boolean
|
|
4318
|
+
description: If set, updates whether dates always include the year.
|
|
4319
|
+
x-updatable: true
|
|
4320
|
+
always_display_weekday:
|
|
4321
|
+
type: boolean
|
|
4322
|
+
description: If set, updates whether weekday names are shown when
|
|
4323
|
+
displaying dates.
|
|
4324
|
+
x-updatable: true
|
|
4325
|
+
|
|
3670
4326
|
# Summary endpoint response schemas
|
|
3671
4327
|
summaryResponseObject:
|
|
3672
4328
|
type: object
|
|
@@ -4442,22 +5098,10 @@ components:
|
|
|
4442
5098
|
securitySchemes:
|
|
4443
5099
|
bearerSecurity:
|
|
4444
5100
|
type: http
|
|
4445
|
-
|
|
4446
|
-
|
|
4447
|
-
# the v1 API you can view and manage your API keys on the [developers page
|
|
4448
|
-
# in the Lunch Money app](https://my.lunchmoney.app/developers). <p> To
|
|
4449
|
-
# interact with the Static Mock Server simply enter an API key of 11
|
|
4450
|
-
# characters or more. <p> To interact with the v2 service implemented on
|
|
4451
|
-
# top of the v1 API paste in a real API token associated with a Lunch
|
|
4452
|
-
# Money Budget.
|
|
4453
|
-
description: To interact with the Static Mock Server simply enter an API
|
|
4454
|
-
key of 11 characters or more.
|
|
5101
|
+
description: >-
|
|
5102
|
+
Required for the LIVE server. Optional for MOCK.
|
|
4455
5103
|
scheme: bearer
|
|
4456
5104
|
bearerFormat: JWT
|
|
4457
|
-
cookieAuth:
|
|
4458
|
-
type: apiKey
|
|
4459
|
-
in: cookie
|
|
4460
|
-
name: _lm_access_token
|
|
4461
5105
|
|
|
4462
5106
|
paths:
|
|
4463
5107
|
/me:
|
|
@@ -4465,8 +5109,16 @@ paths:
|
|
|
4465
5109
|
tags:
|
|
4466
5110
|
- me
|
|
4467
5111
|
summary: Get current user
|
|
4468
|
-
description:
|
|
4469
|
-
authorization
|
|
5112
|
+
description: |-
|
|
5113
|
+
Get details about the user associated with the supplied authorization
|
|
5114
|
+
token.<p> Use [/me/user/settings](#tag/me/GET/me/user/settings) for
|
|
5115
|
+
user-wide preferences,
|
|
5116
|
+
[/me/account/settings](#tag/me/GET/me/account/settings) for account-wide
|
|
5117
|
+
preferences, and
|
|
5118
|
+
[/me/user/account/settings](#tag/me/GET/me/user/account/settings) for
|
|
5119
|
+
preferences specific to the current user and budget account.
|
|
5120
|
+
Properties such as `primary_currency` and `budget_name` remain on this
|
|
5121
|
+
response for backwards compatibility.
|
|
4470
5122
|
operationId: getMe
|
|
4471
5123
|
parameters: []
|
|
4472
5124
|
responses:
|
|
@@ -4490,6 +5142,247 @@ paths:
|
|
|
4490
5142
|
$ref: "#/components/responses/rateLimited"
|
|
4491
5143
|
"500":
|
|
4492
5144
|
$ref: "#/components/responses/serverError"
|
|
5145
|
+
/me/account/settings:
|
|
5146
|
+
get:
|
|
5147
|
+
tags:
|
|
5148
|
+
- me
|
|
5149
|
+
summary: Get account settings
|
|
5150
|
+
description: >-
|
|
5151
|
+
Returns settings for the current budget account. These settings apply
|
|
5152
|
+
regardless of which user is accessing the account.
|
|
5153
|
+
operationId: getAccountSettings
|
|
5154
|
+
responses:
|
|
5155
|
+
"200":
|
|
5156
|
+
description: Account settings for the current budget account
|
|
5157
|
+
content:
|
|
5158
|
+
application/json:
|
|
5159
|
+
schema:
|
|
5160
|
+
$ref: "#/components/schemas/accountSettingsObject"
|
|
5161
|
+
example:
|
|
5162
|
+
primary_currency: usd
|
|
5163
|
+
supported_currencies:
|
|
5164
|
+
- usd
|
|
5165
|
+
- cad
|
|
5166
|
+
- jpy
|
|
5167
|
+
display_name: "\U0001F3E0 Family budget"
|
|
5168
|
+
locale: en-US
|
|
5169
|
+
auto_create_category_rules: true
|
|
5170
|
+
auto_create_suggested_transaction_rules: true
|
|
5171
|
+
include_pending_in_totals: true
|
|
5172
|
+
"401":
|
|
5173
|
+
$ref: "#/components/responses/unauthorizedToken"
|
|
5174
|
+
"429":
|
|
5175
|
+
$ref: "#/components/responses/rateLimited"
|
|
5176
|
+
"500":
|
|
5177
|
+
$ref: "#/components/responses/serverError"
|
|
5178
|
+
put:
|
|
5179
|
+
tags:
|
|
5180
|
+
- me
|
|
5181
|
+
summary: Update account settings
|
|
5182
|
+
description: |-
|
|
5183
|
+
Updates account-level settings for the budget account
|
|
5184
|
+
associated with the authorized API token. Submit the full response from
|
|
5185
|
+
`GET /me/account/settings` with one or more properties changed, or
|
|
5186
|
+
provide only the properties to update. The request body must include at
|
|
5187
|
+
least one property.
|
|
5188
|
+
operationId: updateAccountSettings
|
|
5189
|
+
requestBody:
|
|
5190
|
+
required: true
|
|
5191
|
+
content:
|
|
5192
|
+
application/json:
|
|
5193
|
+
schema:
|
|
5194
|
+
$ref: "#/components/schemas/updateAccountSettingsRequestObject"
|
|
5195
|
+
examples:
|
|
5196
|
+
Update display name:
|
|
5197
|
+
value:
|
|
5198
|
+
display_name: "Travel budget"
|
|
5199
|
+
Update automation preferences:
|
|
5200
|
+
value:
|
|
5201
|
+
auto_create_category_rules: false
|
|
5202
|
+
include_pending_in_totals: false
|
|
5203
|
+
responses:
|
|
5204
|
+
"200":
|
|
5205
|
+
description: Account settings updated successfully
|
|
5206
|
+
content:
|
|
5207
|
+
application/json:
|
|
5208
|
+
schema:
|
|
5209
|
+
$ref: "#/components/schemas/accountSettingsObject"
|
|
5210
|
+
"400":
|
|
5211
|
+
description: Invalid request body
|
|
5212
|
+
content:
|
|
5213
|
+
application/json:
|
|
5214
|
+
schema:
|
|
5215
|
+
$ref: "#/components/schemas/errorResponseObject"
|
|
5216
|
+
"401":
|
|
5217
|
+
$ref: "#/components/responses/unauthorizedToken"
|
|
5218
|
+
"429":
|
|
5219
|
+
$ref: "#/components/responses/rateLimited"
|
|
5220
|
+
"500":
|
|
5221
|
+
$ref: "#/components/responses/serverError"
|
|
5222
|
+
/me/user/settings:
|
|
5223
|
+
get:
|
|
5224
|
+
tags:
|
|
5225
|
+
- me
|
|
5226
|
+
summary: Get user settings
|
|
5227
|
+
description: >-
|
|
5228
|
+
Returns display and formatting preferences for the authorized user.
|
|
5229
|
+
These settings apply across every budget account the user owns or
|
|
5230
|
+
collaborates on.
|
|
5231
|
+
operationId: getUserSettings
|
|
5232
|
+
responses:
|
|
5233
|
+
"200":
|
|
5234
|
+
description: User settings for the authorized user
|
|
5235
|
+
content:
|
|
5236
|
+
application/json:
|
|
5237
|
+
schema:
|
|
5238
|
+
$ref: "#/components/schemas/userSettingsObject"
|
|
5239
|
+
example:
|
|
5240
|
+
show_debits_as_negative: true
|
|
5241
|
+
auto_suggest_payee: true
|
|
5242
|
+
month_year_format: "MMM YYYY"
|
|
5243
|
+
month_day_year_format: "MMM D, YYYY"
|
|
5244
|
+
month_day_format: "MMM D"
|
|
5245
|
+
show_am_pm: true
|
|
5246
|
+
week_starts_on: sunday
|
|
5247
|
+
always_display_year: false
|
|
5248
|
+
always_display_weekday: true
|
|
5249
|
+
"401":
|
|
5250
|
+
$ref: "#/components/responses/unauthorizedToken"
|
|
5251
|
+
"429":
|
|
5252
|
+
$ref: "#/components/responses/rateLimited"
|
|
5253
|
+
"500":
|
|
5254
|
+
$ref: "#/components/responses/serverError"
|
|
5255
|
+
put:
|
|
5256
|
+
tags:
|
|
5257
|
+
- me
|
|
5258
|
+
summary: Update user settings
|
|
5259
|
+
description: |-
|
|
5260
|
+
Updates user-level display and formatting preferences for the user
|
|
5261
|
+
associated with the authorized API token. Submit the full response from
|
|
5262
|
+
`GET /me/user/settings` with one or more properties changed, or provide
|
|
5263
|
+
only the properties to update. The request body must include at least
|
|
5264
|
+
one property.<p> Updating
|
|
5265
|
+
`show_debits_as_negative` affects display in the Lunch Money app only.
|
|
5266
|
+
Amount fields in API responses always use positive values for debits and
|
|
5267
|
+
negative values for credits.
|
|
5268
|
+
operationId: updateUserSettings
|
|
5269
|
+
requestBody:
|
|
5270
|
+
required: true
|
|
5271
|
+
content:
|
|
5272
|
+
application/json:
|
|
5273
|
+
schema:
|
|
5274
|
+
$ref: "#/components/schemas/updateUserSettingsRequestObject"
|
|
5275
|
+
examples:
|
|
5276
|
+
Update date formats:
|
|
5277
|
+
value:
|
|
5278
|
+
month_year_format: "YYYY-MM"
|
|
5279
|
+
month_day_year_format: "YYYY-MM-DD"
|
|
5280
|
+
month_day_format: "MM-DD"
|
|
5281
|
+
Use 24-hour time and Monday week start:
|
|
5282
|
+
value:
|
|
5283
|
+
show_am_pm: false
|
|
5284
|
+
week_starts_on: monday
|
|
5285
|
+
responses:
|
|
5286
|
+
"200":
|
|
5287
|
+
description: User settings updated successfully
|
|
5288
|
+
content:
|
|
5289
|
+
application/json:
|
|
5290
|
+
schema:
|
|
5291
|
+
$ref: "#/components/schemas/userSettingsObject"
|
|
5292
|
+
"400":
|
|
5293
|
+
description: Invalid request body
|
|
5294
|
+
content:
|
|
5295
|
+
application/json:
|
|
5296
|
+
schema:
|
|
5297
|
+
$ref: "#/components/schemas/errorResponseObject"
|
|
5298
|
+
"401":
|
|
5299
|
+
$ref: "#/components/responses/unauthorizedToken"
|
|
5300
|
+
"429":
|
|
5301
|
+
$ref: "#/components/responses/rateLimited"
|
|
5302
|
+
"500":
|
|
5303
|
+
$ref: "#/components/responses/serverError"
|
|
5304
|
+
/me/user/account/settings:
|
|
5305
|
+
get:
|
|
5306
|
+
tags:
|
|
5307
|
+
- me
|
|
5308
|
+
summary: Get user account settings
|
|
5309
|
+
description: >-
|
|
5310
|
+
Returns settings specific to the authorized user within the current
|
|
5311
|
+
budget account. These settings do not affect other users or the
|
|
5312
|
+
authorized user's settings in other budget accounts.
|
|
5313
|
+
operationId: getUserAccountSettings
|
|
5314
|
+
responses:
|
|
5315
|
+
"200":
|
|
5316
|
+
description: Settings for the authorized user in the current budget
|
|
5317
|
+
account
|
|
5318
|
+
content:
|
|
5319
|
+
application/json:
|
|
5320
|
+
schema:
|
|
5321
|
+
$ref: "#/components/schemas/userAccountSettingsObject"
|
|
5322
|
+
example:
|
|
5323
|
+
auto_review_transaction_on_update: true
|
|
5324
|
+
auto_review_transaction_on_creation: true
|
|
5325
|
+
default_manual_account_id: null
|
|
5326
|
+
"401":
|
|
5327
|
+
$ref: "#/components/responses/unauthorizedToken"
|
|
5328
|
+
"429":
|
|
5329
|
+
$ref: "#/components/responses/rateLimited"
|
|
5330
|
+
"500":
|
|
5331
|
+
$ref: "#/components/responses/serverError"
|
|
5332
|
+
put:
|
|
5333
|
+
tags:
|
|
5334
|
+
- me
|
|
5335
|
+
summary: Update user account settings
|
|
5336
|
+
description: |-
|
|
5337
|
+
Updates settings specific to the authorized user within the current
|
|
5338
|
+
budget account. Submit the full response from
|
|
5339
|
+
`GET /me/user/account/settings` with one or more properties changed, or
|
|
5340
|
+
provide only the properties to update. The request body must include at
|
|
5341
|
+
least one property.
|
|
5342
|
+
operationId: updateUserAccountSettings
|
|
5343
|
+
requestBody:
|
|
5344
|
+
required: true
|
|
5345
|
+
content:
|
|
5346
|
+
application/json:
|
|
5347
|
+
schema:
|
|
5348
|
+
$ref: "#/components/schemas/updateUserAccountSettingsRequestObject"
|
|
5349
|
+
examples:
|
|
5350
|
+
Update review preference:
|
|
5351
|
+
value:
|
|
5352
|
+
auto_review_transaction_on_creation: false
|
|
5353
|
+
Clear default manual account:
|
|
5354
|
+
value:
|
|
5355
|
+
default_manual_account_id: null
|
|
5356
|
+
responses:
|
|
5357
|
+
"200":
|
|
5358
|
+
description: User account settings updated successfully
|
|
5359
|
+
content:
|
|
5360
|
+
application/json:
|
|
5361
|
+
schema:
|
|
5362
|
+
$ref: "#/components/schemas/userAccountSettingsObject"
|
|
5363
|
+
examples:
|
|
5364
|
+
Update review preference:
|
|
5365
|
+
value:
|
|
5366
|
+
auto_review_transaction_on_update: true
|
|
5367
|
+
auto_review_transaction_on_creation: false
|
|
5368
|
+
default_manual_account_id: null
|
|
5369
|
+
Clear default manual account:
|
|
5370
|
+
value:
|
|
5371
|
+
auto_review_transaction_on_update: true
|
|
5372
|
+
auto_review_transaction_on_creation: true
|
|
5373
|
+
default_manual_account_id: null
|
|
5374
|
+
"400":
|
|
5375
|
+
description: Invalid request body
|
|
5376
|
+
content:
|
|
5377
|
+
application/json:
|
|
5378
|
+
schema:
|
|
5379
|
+
$ref: "#/components/schemas/errorResponseObject"
|
|
5380
|
+
"401":
|
|
5381
|
+
$ref: "#/components/responses/unauthorizedToken"
|
|
5382
|
+
"429":
|
|
5383
|
+
$ref: "#/components/responses/rateLimited"
|
|
5384
|
+
"500":
|
|
5385
|
+
$ref: "#/components/responses/serverError"
|
|
4493
5386
|
/summary:
|
|
4494
5387
|
get:
|
|
4495
5388
|
tags:
|
|
@@ -5737,12 +6630,9 @@ paths:
|
|
|
5737
6630
|
tags:
|
|
5738
6631
|
- crypto-manual
|
|
5739
6632
|
summary: Get all supported cryptocurrencies
|
|
5740
|
-
description:
|
|
6633
|
+
description: |-
|
|
5741
6634
|
Retrieve the list of cryptocurrencies currently supported for manual tracking.<p>
|
|
5742
|
-
|
|
5743
|
-
When creating a new manual crypto balance via `POST /crypto/manual`, the
|
|
5744
|
-
`symbol` you specify must match the `symbol` of one of the entries
|
|
5745
|
-
returned by this endpoint.
|
|
6635
|
+
When creating a new manual crypto balance via `POST /crypto/manual`, the `symbol` you specify must match the `symbol` of one of the entries returned by this endpoint.
|
|
5746
6636
|
operationId: getAllCryptocurrencies
|
|
5747
6637
|
responses:
|
|
5748
6638
|
"200":
|
|
@@ -5780,16 +6670,9 @@ paths:
|
|
|
5780
6670
|
- crypto-manual
|
|
5781
6671
|
summary: Add a new supported cryptocurrency
|
|
5782
6672
|
operationId: createCryptocurrency
|
|
5783
|
-
description:
|
|
6673
|
+
description: |-
|
|
5784
6674
|
Adds a new cryptocurrency to the supported manual-crypto list.<br><br>
|
|
5785
|
-
|
|
5786
|
-
Lunch Money uses [CoinGecko](https://www.coingecko.com/us/coins/ethereum)
|
|
5787
|
-
to convert crypto balances to the user's primary currency. Users add a
|
|
5788
|
-
new supported cryptocurrency by submitting a CoinGecko coin-page URL.
|
|
5789
|
-
The server validates the URL, extracts the id from `/coins/{id}`,
|
|
5790
|
-
checks for an existing supported `coingecko_id`, validates the id
|
|
5791
|
-
against CoinGecko, then confirms the resolved symbol is not already
|
|
5792
|
-
supported before creating the new entry.
|
|
6675
|
+
Lunch Money uses [CoinGecko](https://www.coingecko.com/us/coins/ethereum) to convert crypto balances to the user's primary currency. Users add a new supported cryptocurrency by submitting a CoinGecko coin-page URL. The server validates the URL, extracts the id from `/coins/{id}`, checks for an existing supported `coingecko_id`, validates the id against CoinGecko, then confirms the resolved symbol is not already supported before creating the new entry.
|
|
5793
6676
|
requestBody:
|
|
5794
6677
|
required: true
|
|
5795
6678
|
content:
|
|
@@ -5868,8 +6751,8 @@ paths:
|
|
|
5868
6751
|
tags:
|
|
5869
6752
|
- crypto-manual
|
|
5870
6753
|
summary: Get all manual crypto balances
|
|
5871
|
-
description:
|
|
5872
|
-
the user's account.
|
|
6754
|
+
description: |-
|
|
6755
|
+
Retrieve all manually managed crypto balances associated with the user's account.
|
|
5873
6756
|
operationId: getAllCryptoManual
|
|
5874
6757
|
responses:
|
|
5875
6758
|
"200":
|
|
@@ -5903,11 +6786,9 @@ paths:
|
|
|
5903
6786
|
tags:
|
|
5904
6787
|
- crypto-manual
|
|
5905
6788
|
summary: Create a manual crypto balance
|
|
5906
|
-
description:
|
|
6789
|
+
description: |-
|
|
5907
6790
|
Create a manually managed crypto asset.<br><br>
|
|
5908
|
-
|
|
5909
|
-
If `display_name` is `null`, clients may derive one from
|
|
5910
|
-
`institution_name` + `name`.
|
|
6791
|
+
If `display_name` is `null`, clients may derive one from `institution_name` + `name`.
|
|
5911
6792
|
operationId: createCryptoManual
|
|
5912
6793
|
requestBody:
|
|
5913
6794
|
required: true
|
|
@@ -5992,7 +6873,8 @@ paths:
|
|
|
5992
6873
|
tags:
|
|
5993
6874
|
- crypto-manual
|
|
5994
6875
|
summary: Get a single manual crypto balance
|
|
5995
|
-
description:
|
|
6876
|
+
description: |-
|
|
6877
|
+
Retrieve a single manually managed crypto balance by ID.
|
|
5996
6878
|
operationId: getCryptoManualById
|
|
5997
6879
|
parameters:
|
|
5998
6880
|
- name: id
|
|
@@ -6060,11 +6942,9 @@ paths:
|
|
|
6060
6942
|
tags:
|
|
6061
6943
|
- crypto-manual
|
|
6062
6944
|
summary: Update a manual crypto balance
|
|
6063
|
-
description:
|
|
6945
|
+
description: |-
|
|
6064
6946
|
Modify a manually managed crypto balance.<br><br>
|
|
6065
|
-
|
|
6066
|
-
You may submit the response from `GET /crypto/manual/{id}` as the request body. System-defined properties
|
|
6067
|
-
are accepted according to the `x-updatable` metadata in the update schema.
|
|
6947
|
+
You may submit the response from `GET /crypto/manual/{id}` as the request body. System-defined properties are accepted according to the `x-updatable` metadata in the update schema.
|
|
6068
6948
|
operationId: updateCryptoManual
|
|
6069
6949
|
parameters:
|
|
6070
6950
|
- name: id
|
|
@@ -6161,10 +7041,8 @@ paths:
|
|
|
6161
7041
|
tags:
|
|
6162
7042
|
- crypto-manual
|
|
6163
7043
|
summary: Delete a manual crypto balance
|
|
6164
|
-
description:
|
|
6165
|
-
this crypto asset has a balance history, and you do not explicitly set
|
|
6166
|
-
the query parameter`keep_history`, a 422 response will be returned
|
|
6167
|
-
requesting you to explicitly set `keep_history` to `true` or `false`.
|
|
7044
|
+
description: |-
|
|
7045
|
+
Delete a single manually managed crypto asset by ID.<p> If this crypto asset has a balance history, and you do not explicitly set the query parameter`keep_history`, a 422 response will be returned requesting you to explicitly set `keep_history` to `true` or `false`.
|
|
6168
7046
|
operationId: deleteCryptoManual
|
|
6169
7047
|
parameters:
|
|
6170
7048
|
- name: id
|
|
@@ -6229,8 +7107,8 @@ paths:
|
|
|
6229
7107
|
tags:
|
|
6230
7108
|
- crypto-synced
|
|
6231
7109
|
summary: Get all synced crypto accounts
|
|
6232
|
-
description:
|
|
6233
|
-
associated with the user's account.
|
|
7110
|
+
description: |-
|
|
7111
|
+
Retrieves all synced crypto accounts associated with the user's account.
|
|
6234
7112
|
operationId: getAllCryptoSynced
|
|
6235
7113
|
responses:
|
|
6236
7114
|
"200":
|
|
@@ -6292,8 +7170,8 @@ paths:
|
|
|
6292
7170
|
tags:
|
|
6293
7171
|
- crypto-synced
|
|
6294
7172
|
summary: Get a single synced crypto account
|
|
6295
|
-
description:
|
|
6296
|
-
for the specified synced crypto account ID.
|
|
7173
|
+
description: |-
|
|
7174
|
+
Retrieves the synced crypto account and all nested balances for the specified synced crypto account ID.
|
|
6297
7175
|
operationId: getCryptoSyncedById
|
|
6298
7176
|
parameters:
|
|
6299
7177
|
- name: id
|
|
@@ -6373,8 +7251,8 @@ paths:
|
|
|
6373
7251
|
tags:
|
|
6374
7252
|
- crypto-synced
|
|
6375
7253
|
summary: Get a synced crypto balance by symbol
|
|
6376
|
-
description:
|
|
6377
|
-
account using the crypto symbol.
|
|
7254
|
+
description: |-
|
|
7255
|
+
Retrieves a single balance from the specified synced crypto account using the crypto symbol.
|
|
6378
7256
|
operationId: getCryptoSyncedBalanceBySymbol
|
|
6379
7257
|
parameters:
|
|
6380
7258
|
- name: id
|
|
@@ -6453,8 +7331,8 @@ paths:
|
|
|
6453
7331
|
tags:
|
|
6454
7332
|
- crypto-synced
|
|
6455
7333
|
summary: Refresh balances for a synced crypto account
|
|
6456
|
-
description:
|
|
6457
|
-
account. Returns the refreshed synced crypto account.
|
|
7334
|
+
description: |-
|
|
7335
|
+
Trigger a balance refresh for the specified synced crypto account. Returns the refreshed synced crypto account.
|
|
6458
7336
|
operationId: refreshCryptoSynced
|
|
6459
7337
|
parameters:
|
|
6460
7338
|
- name: id
|
|
@@ -6523,51 +7401,55 @@ paths:
|
|
|
6523
7401
|
tags:
|
|
6524
7402
|
- balance_history
|
|
6525
7403
|
summary: Get balance history
|
|
6526
|
-
description:
|
|
6527
|
-
Retrieve
|
|
6528
|
-
|
|
6529
|
-
|
|
6530
|
-
|
|
6531
|
-
|
|
6532
|
-
|
|
6533
|
-
|
|
6534
|
-
|
|
6535
|
-
|
|
6536
|
-
`
|
|
6537
|
-
|
|
6538
|
-
stored entries when no range is provided.<br><br>
|
|
6539
|
-
|
|
6540
|
-
Historical entries for accounts that have been deleted may still
|
|
6541
|
-
be returned. These entries use `source.type: deleted` and include
|
|
6542
|
-
`deleted_account_id`, archived display fields, and account metadata on the
|
|
6543
|
-
`source` object.
|
|
7404
|
+
description: |-
|
|
7405
|
+
Retrieve monthly balance history for all account sources.<br><br>
|
|
7406
|
+
Balance history is monthly. Each entry represents the account balance at or around the end of the specified month. System-generated entries are generally captured near the boundary between months.<br><br>
|
|
7407
|
+
Query with optional `start_month` and `end_month` in YYYY-MM format. The range is inclusive. If either parameter is provided, both are required. `start_month` must not be in the future. `end_month` may not be earlier than `start_month` and must not be in the future. Values must be valid calendar months in exact YYYY-MM format. A full date such as `2026-06-01` is invalid. If neither is provided, all available balance history is returned, including an ephemeral `current` entry for the current month when applicable.<br><br>
|
|
7408
|
+
The response groups entries by source account. Each item in `balance_history` contains a `source` object plus a `balances` array. Within a requested range (or across all history when no range is provided), the array includes only months that have data — months with no data are omitted. A `current` entry is also included when the requested range includes the current month.<br><br>
|
|
7409
|
+
Each balance entry has a `type`:<br>
|
|
7410
|
+
- `historical`: stored snapshot of a past month for an active or deleted account. Includes an `id` that can be used with balance history entry endpoints<br>
|
|
7411
|
+
- `current`: snapshot based on the account's current balances. It is ephemeral and may change between requests. To inspect the underlying account, use the type-specific source id for the `source.type` values:<br>
|
|
7412
|
+
- `manual`: `source.manual_account_id` with [GET /manual_accounts/{id}](#tag/manual-accounts/GET/manual_accounts/{id})<br>
|
|
7413
|
+
- `plaid`: `source.plaid_account_id` with [GET /plaid_accounts/{id}](#tag/plaid-accounts/GET/plaid_accounts/{id})<br>
|
|
7414
|
+
- `crypto_manual`: `source.crypto_manual_id` with [GET /crypto/manual/{id}](#tag/crypto-manual/GET/crypto/manual/{id})<br>
|
|
7415
|
+
- `crypto_synced`: `source.crypto_synced_id` and `source.symbol` with [GET /crypto/synced/{id}/{symbol}](#tag/crypto-synced/GET/crypto/synced/{id}/{symbol})
|
|
6544
7416
|
operationId: getBalanceHistory
|
|
6545
7417
|
parameters:
|
|
6546
|
-
- name:
|
|
7418
|
+
- name: start_month
|
|
6547
7419
|
in: query
|
|
6548
|
-
description:
|
|
7420
|
+
description: >-
|
|
7421
|
+
Optional start of the requested history range as a calendar month in
|
|
7422
|
+
YYYY-MM format (for example `2026-06`). If set, `end_month` is also
|
|
7423
|
+
required. The range is inclusive. `start_month` must not be in the
|
|
7424
|
+
future. A full date such as `2026-06-01` is invalid.
|
|
6549
7425
|
required: false
|
|
6550
7426
|
schema:
|
|
6551
7427
|
type: string
|
|
6552
|
-
|
|
7428
|
+
pattern: '^\d{4}-(0[1-9]|1[0-2])$'
|
|
6553
7429
|
examples:
|
|
6554
7430
|
range start:
|
|
6555
|
-
summary: Start
|
|
6556
|
-
value: "2026-01
|
|
6557
|
-
- name:
|
|
7431
|
+
summary: Start month
|
|
7432
|
+
value: "2026-01"
|
|
7433
|
+
- name: end_month
|
|
6558
7434
|
in: query
|
|
6559
|
-
description:
|
|
7435
|
+
description: >-
|
|
7436
|
+
Optional end of the requested history range as a calendar month in
|
|
7437
|
+
YYYY-MM format (for example `2026-06`). If set, `start_month` is also
|
|
7438
|
+
required. The range is inclusive. `end_month` may not be earlier than
|
|
7439
|
+
`start_month` and must not be in the future. A full date such as
|
|
7440
|
+
`2026-06-01` is invalid. For a single month, set this to the same
|
|
7441
|
+
value as `start_month`.
|
|
6560
7442
|
required: false
|
|
6561
7443
|
schema:
|
|
6562
7444
|
type: string
|
|
6563
|
-
|
|
7445
|
+
pattern: '^\d{4}-(0[1-9]|1[0-2])$'
|
|
6564
7446
|
examples:
|
|
6565
7447
|
range end:
|
|
6566
|
-
summary: End
|
|
6567
|
-
value: "2026-03
|
|
7448
|
+
summary: End month
|
|
7449
|
+
value: "2026-03"
|
|
6568
7450
|
responses:
|
|
6569
7451
|
"200":
|
|
6570
|
-
description:
|
|
7452
|
+
description: Monthly balance history for the requested month range
|
|
6571
7453
|
content:
|
|
6572
7454
|
application/json:
|
|
6573
7455
|
schema:
|
|
@@ -6580,14 +7462,16 @@ paths:
|
|
|
6580
7462
|
type: manual
|
|
6581
7463
|
manual_account_id: 119807
|
|
6582
7464
|
balances:
|
|
6583
|
-
-
|
|
6584
|
-
|
|
7465
|
+
- type: historical
|
|
7466
|
+
id: 101
|
|
7467
|
+
month: "2026-01"
|
|
6585
7468
|
balance: "41000.0000"
|
|
6586
7469
|
currency: usd
|
|
6587
7470
|
to_base: 41000
|
|
6588
7471
|
crypto_balance: null
|
|
6589
|
-
-
|
|
6590
|
-
|
|
7472
|
+
- type: historical
|
|
7473
|
+
id: 102
|
|
7474
|
+
month: "2026-02"
|
|
6591
7475
|
balance: "41211.8000"
|
|
6592
7476
|
currency: usd
|
|
6593
7477
|
to_base: 41211.8
|
|
@@ -6596,8 +7480,9 @@ paths:
|
|
|
6596
7480
|
type: plaid
|
|
6597
7481
|
plaid_account_id: 119808
|
|
6598
7482
|
balances:
|
|
6599
|
-
-
|
|
6600
|
-
|
|
7483
|
+
- type: historical
|
|
7484
|
+
id: 103
|
|
7485
|
+
month: "2026-01"
|
|
6601
7486
|
balance: "5498.2800"
|
|
6602
7487
|
currency: usd
|
|
6603
7488
|
to_base: 5498.28
|
|
@@ -6607,8 +7492,9 @@ paths:
|
|
|
6607
7492
|
crypto_manual_id: 22001
|
|
6608
7493
|
symbol: btc
|
|
6609
7494
|
balances:
|
|
6610
|
-
-
|
|
6611
|
-
|
|
7495
|
+
- type: historical
|
|
7496
|
+
id: 104
|
|
7497
|
+
month: "2026-01"
|
|
6612
7498
|
balance: "53124.7200"
|
|
6613
7499
|
currency: usd
|
|
6614
7500
|
to_base: 53124.72
|
|
@@ -6618,8 +7504,9 @@ paths:
|
|
|
6618
7504
|
crypto_synced_id: 33004
|
|
6619
7505
|
symbol: btc
|
|
6620
7506
|
balances:
|
|
6621
|
-
-
|
|
6622
|
-
|
|
7507
|
+
- type: historical
|
|
7508
|
+
id: 105
|
|
7509
|
+
month: "2026-01"
|
|
6623
7510
|
balance: "6231.2800"
|
|
6624
7511
|
currency: usd
|
|
6625
7512
|
to_base: 6231.28
|
|
@@ -6635,12 +7522,34 @@ paths:
|
|
|
6635
7522
|
mask: "1234"
|
|
6636
7523
|
symbol: null
|
|
6637
7524
|
balances:
|
|
6638
|
-
-
|
|
6639
|
-
|
|
7525
|
+
- type: historical
|
|
7526
|
+
id: 106
|
|
7527
|
+
month: "2026-01"
|
|
6640
7528
|
balance: "1250.0000"
|
|
6641
7529
|
currency: usd
|
|
6642
7530
|
to_base: 1250
|
|
6643
7531
|
crypto_balance: null
|
|
7532
|
+
historical and current:
|
|
7533
|
+
summary: Historical month plus ephemeral current month
|
|
7534
|
+
value:
|
|
7535
|
+
balance_history:
|
|
7536
|
+
- source:
|
|
7537
|
+
type: manual
|
|
7538
|
+
manual_account_id: 162003
|
|
7539
|
+
balances:
|
|
7540
|
+
- type: historical
|
|
7541
|
+
id: 7437356
|
|
7542
|
+
month: "2026-06"
|
|
7543
|
+
balance: "62.8"
|
|
7544
|
+
currency: usd
|
|
7545
|
+
to_base: 62.8
|
|
7546
|
+
crypto_balance: null
|
|
7547
|
+
- type: current
|
|
7548
|
+
month: "2026-07"
|
|
7549
|
+
balance: "71.2"
|
|
7550
|
+
currency: usd
|
|
7551
|
+
to_base: 71.2
|
|
7552
|
+
crypto_balance: null
|
|
6644
7553
|
manual account history:
|
|
6645
7554
|
value:
|
|
6646
7555
|
balance_history:
|
|
@@ -6648,14 +7557,16 @@ paths:
|
|
|
6648
7557
|
type: manual
|
|
6649
7558
|
manual_account_id: 119807
|
|
6650
7559
|
balances:
|
|
6651
|
-
-
|
|
6652
|
-
|
|
7560
|
+
- type: historical
|
|
7561
|
+
id: 201
|
|
7562
|
+
month: "2026-01"
|
|
6653
7563
|
balance: "41000.0000"
|
|
6654
7564
|
currency: usd
|
|
6655
7565
|
to_base: 41000
|
|
6656
7566
|
crypto_balance: null
|
|
6657
|
-
-
|
|
6658
|
-
|
|
7567
|
+
- type: historical
|
|
7568
|
+
id: 202
|
|
7569
|
+
month: "2026-02"
|
|
6659
7570
|
balance: "41211.8000"
|
|
6660
7571
|
currency: usd
|
|
6661
7572
|
to_base: 41211.8
|
|
@@ -6667,8 +7578,9 @@ paths:
|
|
|
6667
7578
|
type: plaid
|
|
6668
7579
|
plaid_account_id: 119808
|
|
6669
7580
|
balances:
|
|
6670
|
-
-
|
|
6671
|
-
|
|
7581
|
+
- type: historical
|
|
7582
|
+
id: 301
|
|
7583
|
+
month: "2026-02"
|
|
6672
7584
|
balance: "5498.2800"
|
|
6673
7585
|
currency: usd
|
|
6674
7586
|
to_base: 5498.28
|
|
@@ -6681,8 +7593,9 @@ paths:
|
|
|
6681
7593
|
crypto_synced_id: 33004
|
|
6682
7594
|
symbol: btc
|
|
6683
7595
|
balances:
|
|
6684
|
-
-
|
|
6685
|
-
|
|
7596
|
+
- type: historical
|
|
7597
|
+
id: 401
|
|
7598
|
+
month: "2026-02"
|
|
6686
7599
|
balance: "6231.2800"
|
|
6687
7600
|
currency: usd
|
|
6688
7601
|
to_base: 6231.28
|
|
@@ -6701,8 +7614,9 @@ paths:
|
|
|
6701
7614
|
mask: "1234"
|
|
6702
7615
|
symbol: null
|
|
6703
7616
|
balances:
|
|
6704
|
-
-
|
|
6705
|
-
|
|
7617
|
+
- type: historical
|
|
7618
|
+
id: 501
|
|
7619
|
+
month: "2026-01"
|
|
6706
7620
|
balance: "1250.0000"
|
|
6707
7621
|
currency: usd
|
|
6708
7622
|
to_base: 1250
|
|
@@ -6714,26 +7628,31 @@ paths:
|
|
|
6714
7628
|
schema:
|
|
6715
7629
|
$ref: "#/components/schemas/errorResponseObject"
|
|
6716
7630
|
examples:
|
|
6717
|
-
missing paired
|
|
7631
|
+
missing paired month:
|
|
6718
7632
|
value:
|
|
6719
7633
|
message: Request Validation Failure
|
|
6720
7634
|
errors:
|
|
6721
|
-
- errMsg: "`
|
|
7635
|
+
- errMsg: "`start_month` and `end_month` must either both be provided or both be omitted."
|
|
6722
7636
|
invalid range:
|
|
6723
7637
|
value:
|
|
6724
7638
|
message: Request Validation Failure
|
|
6725
7639
|
errors:
|
|
6726
|
-
- errMsg: "`
|
|
6727
|
-
|
|
7640
|
+
- errMsg: "`end_month` may not be earlier than `start_month`."
|
|
7641
|
+
invalid month format:
|
|
7642
|
+
value:
|
|
7643
|
+
message: Invalid Request Parameters
|
|
7644
|
+
errors:
|
|
7645
|
+
- errMsg: "Invalid value for parameter: 'start_month'. '2026-06-01' is not a valid month in YYYY-MM format."
|
|
7646
|
+
future start month:
|
|
6728
7647
|
value:
|
|
6729
7648
|
message: Request Validation Failure
|
|
6730
7649
|
errors:
|
|
6731
|
-
- errMsg: "`
|
|
6732
|
-
future
|
|
7650
|
+
- errMsg: "`start_month` must not be in the future."
|
|
7651
|
+
future end month:
|
|
6733
7652
|
value:
|
|
6734
7653
|
message: Request Validation Failure
|
|
6735
7654
|
errors:
|
|
6736
|
-
- errMsg: "`
|
|
7655
|
+
- errMsg: "`end_month` must not be in the future."
|
|
6737
7656
|
"401":
|
|
6738
7657
|
$ref: "#/components/responses/unauthorizedToken"
|
|
6739
7658
|
"429":
|
|
@@ -6745,23 +7664,16 @@ paths:
|
|
|
6745
7664
|
tags:
|
|
6746
7665
|
- balance_history
|
|
6747
7666
|
summary: Get balance history for an account
|
|
6748
|
-
description:
|
|
6749
|
-
Retrieve
|
|
6750
|
-
|
|
6751
|
-
|
|
6752
|
-
The `account_type` path parameter identifies the type of account and the
|
|
6753
|
-
`account_id` path parameter identifies the specific id for that account type.<br><br>
|
|
6754
|
-
|
|
6755
|
-
When `start_date` and `end_date` are both provided, they must be first-of-month
|
|
6756
|
-
dates. `start_date` must not be in the future, while `end_date` may be in the future.
|
|
6757
|
-
If one of `start_date` or `end_date` is provided, the other is required. If neither is
|
|
6758
|
-
provided, all available history for the source is returned.
|
|
7667
|
+
description: |-
|
|
7668
|
+
Retrieve monthly balance history for one manual, Plaid, manual crypto, or deleted account. For synced crypto symbol streams, use [GET /balance_history/crypto_synced/{account_id}/{symbol}](#tag/balance-history/GET/balance_history/crypto_synced/{account_id}/{symbol}).<br><br>
|
|
7669
|
+
The `account_type` path parameter identifies the account family (`manual`, `plaid`, `crypto_manual`, or `deleted`) and `account_id` identifies the account within that family.<br><br>
|
|
7670
|
+
`start_month`, `end_month`, and current-month entries behave as described in [GET /balance_history](#tag/balance-history/GET/balance_history).
|
|
6759
7671
|
operationId: getBalanceHistoryForAccount
|
|
6760
7672
|
parameters:
|
|
6761
7673
|
- name: account_type
|
|
6762
7674
|
in: path
|
|
6763
7675
|
required: true
|
|
6764
|
-
description:
|
|
7676
|
+
description: Account family to retrieve. Use `manual`, `plaid`, `crypto_manual`, or `deleted`.
|
|
6765
7677
|
schema:
|
|
6766
7678
|
type: string
|
|
6767
7679
|
enum: [manual, plaid, crypto_manual, deleted]
|
|
@@ -6772,23 +7684,27 @@ paths:
|
|
|
6772
7684
|
schema:
|
|
6773
7685
|
type: integer
|
|
6774
7686
|
format: int32
|
|
6775
|
-
- name:
|
|
7687
|
+
- name: start_month
|
|
6776
7688
|
in: query
|
|
6777
|
-
description:
|
|
7689
|
+
description: >-
|
|
7690
|
+
Optional. Same format and constraints as `start_month` on
|
|
7691
|
+
[GET /balance_history](#tag/balance-history/GET/balance_history).
|
|
6778
7692
|
required: false
|
|
6779
7693
|
schema:
|
|
6780
7694
|
type: string
|
|
6781
|
-
|
|
6782
|
-
- name:
|
|
7695
|
+
pattern: '^\d{4}-(0[1-9]|1[0-2])$'
|
|
7696
|
+
- name: end_month
|
|
6783
7697
|
in: query
|
|
6784
|
-
description:
|
|
7698
|
+
description: >-
|
|
7699
|
+
Optional. Same format and constraints as `end_month` on
|
|
7700
|
+
[GET /balance_history](#tag/balance-history/GET/balance_history).
|
|
6785
7701
|
required: false
|
|
6786
7702
|
schema:
|
|
6787
7703
|
type: string
|
|
6788
|
-
|
|
7704
|
+
pattern: '^\d{4}-(0[1-9]|1[0-2])$'
|
|
6789
7705
|
responses:
|
|
6790
7706
|
"200":
|
|
6791
|
-
description:
|
|
7707
|
+
description: Monthly balance history for the requested source
|
|
6792
7708
|
content:
|
|
6793
7709
|
application/json:
|
|
6794
7710
|
schema:
|
|
@@ -6801,14 +7717,16 @@ paths:
|
|
|
6801
7717
|
type: manual
|
|
6802
7718
|
manual_account_id: 119807
|
|
6803
7719
|
balances:
|
|
6804
|
-
-
|
|
6805
|
-
|
|
7720
|
+
- type: historical
|
|
7721
|
+
id: 201
|
|
7722
|
+
month: "2026-01"
|
|
6806
7723
|
balance: "41000.0000"
|
|
6807
7724
|
currency: usd
|
|
6808
7725
|
to_base: 41000
|
|
6809
7726
|
crypto_balance: null
|
|
6810
|
-
-
|
|
6811
|
-
|
|
7727
|
+
- type: historical
|
|
7728
|
+
id: 202
|
|
7729
|
+
month: "2026-02"
|
|
6812
7730
|
balance: "41211.8000"
|
|
6813
7731
|
currency: usd
|
|
6814
7732
|
to_base: 41211.8
|
|
@@ -6827,8 +7745,9 @@ paths:
|
|
|
6827
7745
|
mask: "1234"
|
|
6828
7746
|
symbol: null
|
|
6829
7747
|
balances:
|
|
6830
|
-
-
|
|
6831
|
-
|
|
7748
|
+
- type: historical
|
|
7749
|
+
id: 501
|
|
7750
|
+
month: "2026-01"
|
|
6832
7751
|
balance: "1250.0000"
|
|
6833
7752
|
currency: usd
|
|
6834
7753
|
to_base: 1250
|
|
@@ -6840,16 +7759,16 @@ paths:
|
|
|
6840
7759
|
schema:
|
|
6841
7760
|
$ref: "#/components/schemas/errorResponseObject"
|
|
6842
7761
|
examples:
|
|
6843
|
-
missing paired
|
|
7762
|
+
missing paired month:
|
|
6844
7763
|
value:
|
|
6845
7764
|
message: Request Validation Failure
|
|
6846
7765
|
errors:
|
|
6847
|
-
- errMsg: "`
|
|
6848
|
-
invalid
|
|
7766
|
+
- errMsg: "`start_month` and `end_month` must either both be provided or both be omitted."
|
|
7767
|
+
invalid month format:
|
|
6849
7768
|
value:
|
|
6850
|
-
message: Request
|
|
7769
|
+
message: Invalid Request Parameters
|
|
6851
7770
|
errors:
|
|
6852
|
-
- errMsg: "
|
|
7771
|
+
- errMsg: "Invalid value for parameter: 'start_month'. '2026-06-01' is not a valid month in YYYY-MM format."
|
|
6853
7772
|
"401":
|
|
6854
7773
|
$ref: "#/components/responses/unauthorizedToken"
|
|
6855
7774
|
"404":
|
|
@@ -6877,37 +7796,20 @@ paths:
|
|
|
6877
7796
|
tags:
|
|
6878
7797
|
- balance_history
|
|
6879
7798
|
summary: Upsert balance history for an account
|
|
6880
|
-
description:
|
|
6881
|
-
Upsert one or more historical balance entries for a single manual, Plaid,
|
|
6882
|
-
|
|
6883
|
-
|
|
6884
|
-
|
|
6885
|
-
`
|
|
6886
|
-
|
|
6887
|
-
|
|
6888
|
-
a `date` and `balance` value.<br><br>
|
|
6889
|
-
|
|
6890
|
-
Balance history is monthly. Each entry's `date` must be the first day of
|
|
6891
|
-
a month and must be in a past month.<br><br>
|
|
6892
|
-
|
|
6893
|
-
`currency` may be provided for any balance entry. If omitted, it defaults
|
|
6894
|
-
to the account currency for manual/Plaid accounts, or the user's primary
|
|
6895
|
-
currency for crypto/deleted accounts.<br><br>
|
|
6896
|
-
|
|
6897
|
-
`symbol` may only be set when `account_type` is `crypto_manual` or
|
|
6898
|
-
`crypto_synced`. It is optional for `crypto_manual` accounts and tolerated
|
|
6899
|
-
for `deleted` accounts.<br><br>
|
|
6900
|
-
|
|
6901
|
-
`crypto_balance` may be provided for `crypto_manual`, `crypto_synced`, and
|
|
6902
|
-
`deleted` accounts, and is invalid for `manual` or `plaid` accounts.<br><br>
|
|
6903
|
-
|
|
6904
|
-
The response contains only the balance entries that were submitted in this request.
|
|
7799
|
+
description: |-
|
|
7800
|
+
Upsert one or more historical balance entries for a single manual, Plaid, manual crypto, or deleted account. For synced crypto symbol streams, use [PUT /balance_history/crypto_synced/{account_id}/{symbol}](#tag/balance-history/PUT/balance_history/crypto_synced/{account_id}/{symbol}).<br><br>
|
|
7801
|
+
The `account_type` path parameter identifies the account family (`manual`, `plaid`, `crypto_manual`, or `deleted`) and `account_id` identifies the account within that family.<br><br>
|
|
7802
|
+
Submit one or more entries in the `balances` array. Each entry must specify a `month` (YYYY-MM) and `balance` value. `month` must be a past calendar month. The current month cannot be written through this endpoint.<br><br>
|
|
7803
|
+
`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>
|
|
7804
|
+
`symbol` may be set for `crypto_manual` (optional) and `deleted` (tolerated) accounts. Do not provide it for `manual` or `plaid` accounts.<br><br>
|
|
7805
|
+
`crypto_balance` may be provided for `crypto_manual` and `deleted` accounts. It is invalid for `manual` or `plaid` accounts.<br><br>
|
|
7806
|
+
The response contains only the `type: historical` balance entries that were submitted in this request.
|
|
6905
7807
|
operationId: upsertBalanceHistoryForAccount
|
|
6906
7808
|
parameters:
|
|
6907
7809
|
- name: account_type
|
|
6908
7810
|
in: path
|
|
6909
7811
|
required: true
|
|
6910
|
-
description:
|
|
7812
|
+
description: Account family to update. Use `manual`, `plaid`, `crypto_manual`, or `deleted`.
|
|
6911
7813
|
schema:
|
|
6912
7814
|
type: string
|
|
6913
7815
|
enum: [manual, plaid, crypto_manual, deleted]
|
|
@@ -6928,21 +7830,21 @@ paths:
|
|
|
6928
7830
|
manual account bulk upsert:
|
|
6929
7831
|
value:
|
|
6930
7832
|
balances:
|
|
6931
|
-
-
|
|
7833
|
+
- month: "2026-03"
|
|
6932
7834
|
balance: "41500.0000"
|
|
6933
|
-
-
|
|
7835
|
+
- month: "2026-04"
|
|
6934
7836
|
balance: "41625.5000"
|
|
6935
7837
|
crypto manual balance with symbol:
|
|
6936
7838
|
value:
|
|
6937
7839
|
balances:
|
|
6938
|
-
-
|
|
7840
|
+
- month: "2026-03"
|
|
6939
7841
|
balance: "56011.1200"
|
|
6940
7842
|
symbol: btc
|
|
6941
7843
|
crypto_balance: "0.852341920145782301"
|
|
6942
7844
|
deleted account bulk upsert:
|
|
6943
7845
|
value:
|
|
6944
7846
|
balances:
|
|
6945
|
-
-
|
|
7847
|
+
- month: "2026-03"
|
|
6946
7848
|
symbol: btc
|
|
6947
7849
|
crypto_balance: "0.020000000000000000"
|
|
6948
7850
|
currency: usd
|
|
@@ -6951,55 +7853,59 @@ paths:
|
|
|
6951
7853
|
value:
|
|
6952
7854
|
balances:
|
|
6953
7855
|
- id: 601
|
|
6954
|
-
|
|
7856
|
+
month: "2026-03"
|
|
6955
7857
|
balance: "41500.0000"
|
|
6956
7858
|
currency: usd
|
|
6957
7859
|
to_base: 41500
|
|
6958
7860
|
crypto_balance: null
|
|
6959
7861
|
responses:
|
|
6960
7862
|
"200":
|
|
6961
|
-
description:
|
|
6962
|
-
|
|
7863
|
+
description: >-
|
|
7864
|
+
Returns only the `type: historical` entries modified by this request.
|
|
7865
|
+
Other historical entries for the account are omitted from `balances`.
|
|
6963
7866
|
content:
|
|
6964
7867
|
application/json:
|
|
6965
7868
|
schema:
|
|
6966
7869
|
$ref: "#/components/schemas/balanceHistoryAccountObject"
|
|
6967
7870
|
examples:
|
|
6968
7871
|
manual account bulk upsert:
|
|
6969
|
-
summary: Two upserted
|
|
7872
|
+
summary: Two upserted entries returned (not full account history)
|
|
6970
7873
|
value:
|
|
6971
7874
|
source:
|
|
6972
7875
|
type: manual
|
|
6973
7876
|
manual_account_id: 119807
|
|
6974
7877
|
balances:
|
|
6975
|
-
-
|
|
6976
|
-
|
|
7878
|
+
- type: historical
|
|
7879
|
+
id: 601
|
|
7880
|
+
month: "2026-03"
|
|
6977
7881
|
balance: "41500.0000"
|
|
6978
7882
|
currency: usd
|
|
6979
7883
|
to_base: 41500
|
|
6980
7884
|
crypto_balance: null
|
|
6981
|
-
-
|
|
6982
|
-
|
|
7885
|
+
- type: historical
|
|
7886
|
+
id: 602
|
|
7887
|
+
month: "2026-04"
|
|
6983
7888
|
balance: "41625.5000"
|
|
6984
7889
|
currency: usd
|
|
6985
7890
|
to_base: 41625.5
|
|
6986
7891
|
crypto_balance: null
|
|
6987
7892
|
crypto manual balance with symbol:
|
|
6988
|
-
summary: Single upserted
|
|
7893
|
+
summary: Single upserted entry returned
|
|
6989
7894
|
value:
|
|
6990
7895
|
source:
|
|
6991
7896
|
type: crypto_manual
|
|
6992
7897
|
crypto_manual_id: 22001
|
|
6993
7898
|
symbol: btc
|
|
6994
7899
|
balances:
|
|
6995
|
-
-
|
|
6996
|
-
|
|
7900
|
+
- type: historical
|
|
7901
|
+
id: 603
|
|
7902
|
+
month: "2026-03"
|
|
6997
7903
|
balance: "56011.1200"
|
|
6998
7904
|
currency: usd
|
|
6999
7905
|
to_base: 56011.12
|
|
7000
7906
|
crypto_balance: "0.852341920145782301"
|
|
7001
7907
|
deleted account bulk upsert:
|
|
7002
|
-
summary: Single upserted
|
|
7908
|
+
summary: Single upserted entry returned
|
|
7003
7909
|
value:
|
|
7004
7910
|
source:
|
|
7005
7911
|
type: deleted
|
|
@@ -7012,15 +7918,17 @@ paths:
|
|
|
7012
7918
|
mask: "1234"
|
|
7013
7919
|
symbol: btc
|
|
7014
7920
|
balances:
|
|
7015
|
-
-
|
|
7016
|
-
|
|
7921
|
+
- type: historical
|
|
7922
|
+
id: 504
|
|
7923
|
+
month: "2026-03"
|
|
7017
7924
|
balance: "1255"
|
|
7018
7925
|
currency: usd
|
|
7019
7926
|
to_base: 1255
|
|
7020
7927
|
crypto_balance: "0.020000000000000000"
|
|
7021
7928
|
"400":
|
|
7022
|
-
description:
|
|
7023
|
-
`balances` fails validation
|
|
7929
|
+
description: >-
|
|
7930
|
+
Bad Request. If any entry in `balances` fails validation, the entire
|
|
7931
|
+
request is rejected and no entries are updated.
|
|
7024
7932
|
content:
|
|
7025
7933
|
application/json:
|
|
7026
7934
|
schema:
|
|
@@ -7041,30 +7949,34 @@ paths:
|
|
|
7041
7949
|
message: Invalid Request Body
|
|
7042
7950
|
errors:
|
|
7043
7951
|
- errMsg: "Invalid property 'foo' in request body."
|
|
7044
|
-
invalid
|
|
7952
|
+
invalid month format:
|
|
7953
|
+
value:
|
|
7954
|
+
message: Invalid Request Body
|
|
7955
|
+
errors:
|
|
7956
|
+
- errMsg: "Invalid value for property 'balances.0.month'. '2026-06-01' is not a valid month in YYYY-MM format."
|
|
7957
|
+
current month:
|
|
7045
7958
|
value:
|
|
7046
7959
|
message: Request Validation Failure
|
|
7047
7960
|
errors:
|
|
7048
|
-
- errMsg: "`
|
|
7961
|
+
- errMsg: "`month` must not be the current month."
|
|
7049
7962
|
request_balances_index: 0
|
|
7050
|
-
|
|
7051
|
-
future date:
|
|
7963
|
+
future month:
|
|
7052
7964
|
value:
|
|
7053
7965
|
message: Request Validation Failure
|
|
7054
7966
|
errors:
|
|
7055
|
-
- errMsg: "`
|
|
7967
|
+
- errMsg: "`month` must not be in the future."
|
|
7056
7968
|
request_balances_index: 1
|
|
7057
7969
|
crypto balance not allowed:
|
|
7058
7970
|
value:
|
|
7059
7971
|
message: Request Validation Failure
|
|
7060
7972
|
errors:
|
|
7061
|
-
- errMsg: "`crypto_balance` may only be set when `account_type` is `crypto_manual
|
|
7973
|
+
- errMsg: "`crypto_balance` may only be set when `account_type` is `crypto_manual` or `deleted`."
|
|
7062
7974
|
request_balances_index: 0
|
|
7063
|
-
invalid
|
|
7975
|
+
invalid entry in bulk request:
|
|
7064
7976
|
value:
|
|
7065
7977
|
message: Request Validation Failure
|
|
7066
7978
|
errors:
|
|
7067
|
-
- errMsg: "`symbol` may only be set when `account_type` is `crypto_manual` or `
|
|
7979
|
+
- errMsg: "`symbol` may only be set when `account_type` is `crypto_manual` or `deleted`."
|
|
7068
7980
|
request_balances_index: 1
|
|
7069
7981
|
"401":
|
|
7070
7982
|
$ref: "#/components/responses/unauthorizedToken"
|
|
@@ -7086,15 +7998,14 @@ paths:
|
|
|
7086
7998
|
tags:
|
|
7087
7999
|
- balance_history
|
|
7088
8000
|
summary: Delete all balance history for an account
|
|
7089
|
-
description:
|
|
7090
|
-
Delete all historical balance entries for a single manual, Plaid,
|
|
7091
|
-
manual crypto, or deleted account. Crypto synced accounts require an additional `symbol` path parameter.
|
|
8001
|
+
description: |-
|
|
8002
|
+
Delete all historical balance entries for a single manual, Plaid, manual crypto, or deleted account. For synced crypto symbol streams, use [DELETE /balance_history/crypto_synced/{account_id}/{symbol}](#tag/balance-history/DELETE/balance_history/crypto_synced/{account_id}/{symbol}).
|
|
7092
8003
|
operationId: deleteBalanceHistoryForAccount
|
|
7093
8004
|
parameters:
|
|
7094
8005
|
- name: account_type
|
|
7095
8006
|
in: path
|
|
7096
8007
|
required: true
|
|
7097
|
-
description:
|
|
8008
|
+
description: Account family to delete. Use `manual`, `plaid`, `crypto_manual`, or `deleted`.
|
|
7098
8009
|
schema:
|
|
7099
8010
|
type: string
|
|
7100
8011
|
enum: [manual, plaid, crypto_manual, deleted]
|
|
@@ -7131,16 +8042,10 @@ paths:
|
|
|
7131
8042
|
tags:
|
|
7132
8043
|
- balance_history
|
|
7133
8044
|
summary: Get balance history for a synced crypto symbol
|
|
7134
|
-
description:
|
|
7135
|
-
Retrieve
|
|
7136
|
-
|
|
7137
|
-
|
|
7138
|
-
to select one balance stream within that synced crypto account.<br><br>
|
|
7139
|
-
|
|
7140
|
-
When `start_date` and `end_date` are both provided, they must be first-of-month
|
|
7141
|
-
dates. `start_date` must not be in the future, while `end_date` may be in the future.
|
|
7142
|
-
If one of `start_date` or `end_date` is provided, the other is required. If neither is
|
|
7143
|
-
provided, all available history for the symbol stream is returned.
|
|
8045
|
+
description: |-
|
|
8046
|
+
Retrieve monthly balance history for a single synced crypto symbol stream.<br><br>
|
|
8047
|
+
The path selects one balance stream with a synced crypto account id and `symbol`.<br><br>
|
|
8048
|
+
`start_month`, `end_month`, and current-month entries behave as described in [GET /balance_history](#tag/balance-history/GET/balance_history).
|
|
7144
8049
|
operationId: getBalanceHistoryForCryptoSynced
|
|
7145
8050
|
parameters:
|
|
7146
8051
|
- name: account_id
|
|
@@ -7158,23 +8063,27 @@ paths:
|
|
|
7158
8063
|
type: string
|
|
7159
8064
|
minLength: 1
|
|
7160
8065
|
maxLength: 25
|
|
7161
|
-
- name:
|
|
8066
|
+
- name: start_month
|
|
7162
8067
|
in: query
|
|
7163
|
-
description:
|
|
8068
|
+
description: >-
|
|
8069
|
+
Optional. Same format and constraints as `start_month` on
|
|
8070
|
+
[GET /balance_history](#tag/balance-history/GET/balance_history).
|
|
7164
8071
|
required: false
|
|
7165
8072
|
schema:
|
|
7166
8073
|
type: string
|
|
7167
|
-
|
|
7168
|
-
- name:
|
|
8074
|
+
pattern: '^\d{4}-(0[1-9]|1[0-2])$'
|
|
8075
|
+
- name: end_month
|
|
7169
8076
|
in: query
|
|
7170
|
-
description:
|
|
8077
|
+
description: >-
|
|
8078
|
+
Optional. Same format and constraints as `end_month` on
|
|
8079
|
+
[GET /balance_history](#tag/balance-history/GET/balance_history).
|
|
7171
8080
|
required: false
|
|
7172
8081
|
schema:
|
|
7173
8082
|
type: string
|
|
7174
|
-
|
|
8083
|
+
pattern: '^\d{4}-(0[1-9]|1[0-2])$'
|
|
7175
8084
|
responses:
|
|
7176
8085
|
"200":
|
|
7177
|
-
description:
|
|
8086
|
+
description: Monthly balance history for the synced crypto symbol stream
|
|
7178
8087
|
content:
|
|
7179
8088
|
application/json:
|
|
7180
8089
|
schema:
|
|
@@ -7186,8 +8095,9 @@ paths:
|
|
|
7186
8095
|
crypto_synced_id: 33004
|
|
7187
8096
|
symbol: btc
|
|
7188
8097
|
balances:
|
|
7189
|
-
-
|
|
7190
|
-
|
|
8098
|
+
- type: historical
|
|
8099
|
+
id: 401
|
|
8100
|
+
month: "2026-02"
|
|
7191
8101
|
balance: "6231.2800"
|
|
7192
8102
|
currency: usd
|
|
7193
8103
|
to_base: 6231.28
|
|
@@ -7199,16 +8109,16 @@ paths:
|
|
|
7199
8109
|
schema:
|
|
7200
8110
|
$ref: "#/components/schemas/errorResponseObject"
|
|
7201
8111
|
examples:
|
|
7202
|
-
missing paired
|
|
8112
|
+
missing paired month:
|
|
7203
8113
|
value:
|
|
7204
8114
|
message: Request Validation Failure
|
|
7205
8115
|
errors:
|
|
7206
|
-
- errMsg: "`
|
|
7207
|
-
invalid
|
|
8116
|
+
- errMsg: "`start_month` and `end_month` must either both be provided or both be omitted."
|
|
8117
|
+
invalid month format:
|
|
7208
8118
|
value:
|
|
7209
|
-
message: Request
|
|
8119
|
+
message: Invalid Request Parameters
|
|
7210
8120
|
errors:
|
|
7211
|
-
- errMsg: "
|
|
8121
|
+
- errMsg: "Invalid value for parameter: 'start_month'. '2026-06-01' is not a valid month in YYYY-MM format."
|
|
7212
8122
|
"401":
|
|
7213
8123
|
$ref: "#/components/responses/unauthorizedToken"
|
|
7214
8124
|
"404":
|
|
@@ -7236,28 +8146,14 @@ paths:
|
|
|
7236
8146
|
tags:
|
|
7237
8147
|
- balance_history
|
|
7238
8148
|
summary: Upsert balance history for a synced crypto symbol
|
|
7239
|
-
description:
|
|
7240
|
-
Upsert one or more historical balance entries for a single synced crypto
|
|
7241
|
-
symbol stream.<br><br>
|
|
7242
|
-
|
|
8149
|
+
description: |-
|
|
8150
|
+
Upsert one or more historical balance entries for a single synced crypto symbol stream.<br><br>
|
|
7243
8151
|
The path identifies both the synced crypto account and the symbol being updated.<br><br>
|
|
7244
|
-
|
|
7245
|
-
|
|
7246
|
-
|
|
7247
|
-
|
|
7248
|
-
Balance history is monthly. Each entry's `date` must be the first day of
|
|
7249
|
-
a month and must be in a past month.<br><br>
|
|
7250
|
-
|
|
7251
|
-
The request body may include an optional `symbol` on each balance entry. If
|
|
7252
|
-
provided, it must match the `symbol` path parameter. Omit `symbol` to use
|
|
7253
|
-
the path value.<br><br>
|
|
7254
|
-
|
|
7255
|
-
`currency` may be provided for any balance entry. If omitted, it defaults
|
|
7256
|
-
to the user's primary currency for synced crypto balances.<br><br>
|
|
7257
|
-
|
|
8152
|
+
Submit one or more entries in the `balances` array. Each entry must specify a `month` (YYYY-MM) and `balance` value. `month` must be a past calendar month. The current month cannot be written through this endpoint.<br><br>
|
|
8153
|
+
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>
|
|
8154
|
+
`currency` may be provided for any balance entry. If omitted, it defaults to the user's primary currency for synced crypto balances.<br><br>
|
|
7258
8155
|
`crypto_balance` may be provided for synced crypto balances.<br><br>
|
|
7259
|
-
|
|
7260
|
-
The response contains only the balance entries that were submitted in this request.
|
|
8156
|
+
The response contains only the `type: historical` balance entries that were submitted in this request.
|
|
7261
8157
|
operationId: upsertBalanceHistoryForCryptoSynced
|
|
7262
8158
|
parameters:
|
|
7263
8159
|
- name: account_id
|
|
@@ -7285,44 +8181,49 @@ paths:
|
|
|
7285
8181
|
synced crypto bulk upsert:
|
|
7286
8182
|
value:
|
|
7287
8183
|
balances:
|
|
7288
|
-
-
|
|
8184
|
+
- month: "2026-03"
|
|
7289
8185
|
balance: "6400.0000"
|
|
7290
8186
|
crypto_balance: "0.100020003000400050"
|
|
7291
|
-
-
|
|
8187
|
+
- month: "2026-04"
|
|
7292
8188
|
balance: "6500.0000"
|
|
7293
8189
|
crypto_balance: "0.100020003000400050"
|
|
7294
8190
|
responses:
|
|
7295
8191
|
"200":
|
|
7296
|
-
description:
|
|
7297
|
-
|
|
8192
|
+
description: >-
|
|
8193
|
+
Returns only the `type: historical` entries modified by this request.
|
|
8194
|
+
Other historical entries for the symbol stream are omitted from
|
|
8195
|
+
`balances`.
|
|
7298
8196
|
content:
|
|
7299
8197
|
application/json:
|
|
7300
8198
|
schema:
|
|
7301
8199
|
$ref: "#/components/schemas/balanceHistoryAccountObject"
|
|
7302
8200
|
examples:
|
|
7303
8201
|
synced crypto bulk upsert:
|
|
7304
|
-
summary: Two upserted
|
|
8202
|
+
summary: Two upserted entries returned (not full symbol history)
|
|
7305
8203
|
value:
|
|
7306
8204
|
source:
|
|
7307
8205
|
type: crypto_synced
|
|
7308
8206
|
crypto_synced_id: 33004
|
|
7309
8207
|
symbol: btc
|
|
7310
8208
|
balances:
|
|
7311
|
-
-
|
|
7312
|
-
|
|
8209
|
+
- type: historical
|
|
8210
|
+
id: 604
|
|
8211
|
+
month: "2026-03"
|
|
7313
8212
|
balance: "6400.0000"
|
|
7314
8213
|
currency: usd
|
|
7315
8214
|
to_base: 6400
|
|
7316
8215
|
crypto_balance: "0.100020003000400050"
|
|
7317
|
-
-
|
|
7318
|
-
|
|
8216
|
+
- type: historical
|
|
8217
|
+
id: 605
|
|
8218
|
+
month: "2026-04"
|
|
7319
8219
|
balance: "6500.0000"
|
|
7320
8220
|
currency: usd
|
|
7321
8221
|
to_base: 6500
|
|
7322
8222
|
crypto_balance: "0.100020003000400050"
|
|
7323
8223
|
"400":
|
|
7324
|
-
description:
|
|
7325
|
-
`balances` fails validation
|
|
8224
|
+
description: >-
|
|
8225
|
+
Bad Request. If any entry in `balances` fails validation, the entire
|
|
8226
|
+
request is rejected and no entries are updated.
|
|
7326
8227
|
content:
|
|
7327
8228
|
application/json:
|
|
7328
8229
|
schema:
|
|
@@ -7338,17 +8239,22 @@ paths:
|
|
|
7338
8239
|
message: Invalid Request Body
|
|
7339
8240
|
errors:
|
|
7340
8241
|
- errMsg: "Invalid value for property 'balances'. Array must contain at least 1 element(s)"
|
|
7341
|
-
invalid
|
|
8242
|
+
invalid month format:
|
|
8243
|
+
value:
|
|
8244
|
+
message: Invalid Request Body
|
|
8245
|
+
errors:
|
|
8246
|
+
- errMsg: "Invalid value for property 'balances.0.month'. '2026-06-01' is not a valid month in YYYY-MM format."
|
|
8247
|
+
current month:
|
|
7342
8248
|
value:
|
|
7343
8249
|
message: Request Validation Failure
|
|
7344
8250
|
errors:
|
|
7345
|
-
- errMsg: "`
|
|
8251
|
+
- errMsg: "`month` must not be the current month."
|
|
7346
8252
|
request_balances_index: 0
|
|
7347
|
-
future
|
|
8253
|
+
future month:
|
|
7348
8254
|
value:
|
|
7349
8255
|
message: Request Validation Failure
|
|
7350
8256
|
errors:
|
|
7351
|
-
- errMsg: "`
|
|
8257
|
+
- errMsg: "`month` must not be in the future."
|
|
7352
8258
|
request_balances_index: 1
|
|
7353
8259
|
symbol mismatch:
|
|
7354
8260
|
value:
|
|
@@ -7356,9 +8262,9 @@ paths:
|
|
|
7356
8262
|
errors:
|
|
7357
8263
|
- errMsg: "`symbol` in request body (doge) does not match the path symbol (eth)."
|
|
7358
8264
|
request_balances_index: 0
|
|
7359
|
-
invalid
|
|
8265
|
+
invalid entry in bulk request:
|
|
7360
8266
|
value:
|
|
7361
|
-
message: Request
|
|
8267
|
+
message: Invalid Request Body
|
|
7362
8268
|
errors:
|
|
7363
8269
|
- errMsg: "`balance` must be a valid numeric string or number."
|
|
7364
8270
|
request_balances_index: 1
|
|
@@ -7389,11 +8295,9 @@ paths:
|
|
|
7389
8295
|
tags:
|
|
7390
8296
|
- balance_history
|
|
7391
8297
|
summary: Delete all balance history for a synced crypto symbol
|
|
7392
|
-
description:
|
|
8298
|
+
description: |-
|
|
7393
8299
|
Delete all historical balance entries for a single synced crypto symbol stream.<br><br>
|
|
7394
|
-
|
|
7395
|
-
The path identifies both the synced crypto account and the symbol whose
|
|
7396
|
-
history should be deleted.
|
|
8300
|
+
The path identifies both the synced crypto account and the symbol whose history should be deleted.
|
|
7397
8301
|
operationId: deleteBalanceHistoryForCryptoSynced
|
|
7398
8302
|
parameters:
|
|
7399
8303
|
- name: account_id
|
|
@@ -7435,14 +8339,14 @@ paths:
|
|
|
7435
8339
|
tags:
|
|
7436
8340
|
- balance_history
|
|
7437
8341
|
summary: Delete a balance history entry
|
|
7438
|
-
description:
|
|
7439
|
-
Delete a single monthly balance history entry by its id.
|
|
8342
|
+
description: |-
|
|
8343
|
+
Delete a single stored (`type: historical`) monthly balance history entry by its id. Ephemeral `current` entries cannot be deleted this way.
|
|
7440
8344
|
operationId: deleteBalanceHistoryEntry
|
|
7441
8345
|
parameters:
|
|
7442
8346
|
- name: id
|
|
7443
8347
|
in: path
|
|
7444
8348
|
required: true
|
|
7445
|
-
description:
|
|
8349
|
+
description: Historical balance entry identifier to delete.
|
|
7446
8350
|
schema:
|
|
7447
8351
|
type: integer
|
|
7448
8352
|
format: int32
|
|
@@ -7456,7 +8360,7 @@ paths:
|
|
|
7456
8360
|
schema:
|
|
7457
8361
|
$ref: "#/components/schemas/errorResponseObject"
|
|
7458
8362
|
example:
|
|
7459
|
-
message:
|
|
8363
|
+
message: Invalid Path Parameters
|
|
7460
8364
|
errors:
|
|
7461
8365
|
- errMsg: "Invalid value type for path parameter: 'id'. Expected 'number', received 'string'."
|
|
7462
8366
|
"401":
|
|
@@ -7480,12 +8384,9 @@ paths:
|
|
|
7480
8384
|
tags:
|
|
7481
8385
|
- balance_history
|
|
7482
8386
|
summary: Update details for a deleted account
|
|
7483
|
-
description:
|
|
8387
|
+
description: |-
|
|
7484
8388
|
Update archived metadata for a deleted balance history source.<br><br>
|
|
7485
|
-
|
|
7486
|
-
Pass the `deleted` source id returned on `source.deleted_account_id`.
|
|
7487
|
-
This endpoint updates the stored deleted-source metadata used for all
|
|
7488
|
-
historical entries associated with that deleted source.
|
|
8389
|
+
Pass the `deleted_account_id` from a `source.type: deleted` entry. The update applies to all historical entries associated with that deleted source.
|
|
7489
8390
|
operationId: updateBalanceHistoryDetails
|
|
7490
8391
|
parameters:
|
|
7491
8392
|
- name: account_id
|
|
@@ -8559,19 +9460,19 @@ paths:
|
|
|
8559
9460
|
description: Sets the maximum number of transactions to return. If
|
|
8560
9461
|
more match the filter criteria, the response will include a
|
|
8561
9462
|
`has_more` attribute set to `true`. See
|
|
8562
|
-
[Pagination](https://
|
|
9463
|
+
[Pagination](https://lunchmoney.dev/v2/pagination)
|
|
8563
9464
|
- name: offset
|
|
8564
9465
|
in: query
|
|
8565
9466
|
schema:
|
|
8566
9467
|
type: integer
|
|
8567
9468
|
description: Sets the offset for the records returned. This is
|
|
8568
9469
|
typically set automatically in the header. See
|
|
8569
|
-
[Pagination](https://
|
|
9470
|
+
[Pagination](https://lunchmoney.dev/v2/pagination)
|
|
8570
9471
|
responses:
|
|
8571
9472
|
"200":
|
|
8572
9473
|
description: Returns an array of transactions. <br><br>The `has_more`
|
|
8573
9474
|
property is set to `true` if more transactions are available. See
|
|
8574
|
-
[Pagination](https://
|
|
9475
|
+
[Pagination](https://lunchmoney.dev/v2/pagination)
|
|
8575
9476
|
content:
|
|
8576
9477
|
application/json:
|
|
8577
9478
|
schema:
|
|
@@ -10795,9 +11696,8 @@ paths:
|
|
|
10795
11696
|
- transactions (files)
|
|
10796
11697
|
summary: Attach a file to a transaction
|
|
10797
11698
|
operationId: attachFileToTransaction
|
|
10798
|
-
description:
|
|
10799
|
-
Attaches a file to a transaction. The file must be less than 10MB in size.<br><br>
|
|
10800
|
-
The file will be attached to the transaction and can be downloaded from the link returned by a `GET /transactions/attachments/{file_id}` request.
|
|
11699
|
+
description: |-
|
|
11700
|
+
Attaches a file to a transaction. The file must be less than 10MB in size.<br><br> The file will be attached to the transaction and can be downloaded from the link returned by a `GET /transactions/attachments/{file_id}` request.
|
|
10801
11701
|
parameters:
|
|
10802
11702
|
- name: transaction_id
|
|
10803
11703
|
in: path
|
|
@@ -10880,8 +11780,8 @@ paths:
|
|
|
10880
11780
|
/transactions/attachments/{file_id}:
|
|
10881
11781
|
get:
|
|
10882
11782
|
summary: Get a url to download a file attachment
|
|
10883
|
-
description:
|
|
10884
|
-
attachment.
|
|
11783
|
+
description: |-
|
|
11784
|
+
Returns a signed url that can be used to download the file attachment.
|
|
10885
11785
|
operationId: getTransactionAttachmentUrl
|
|
10886
11786
|
tags:
|
|
10887
11787
|
- transactions (files)
|
|
@@ -11618,7 +12518,9 @@ paths:
|
|
|
11618
12518
|
description: |-
|
|
11619
12519
|
Returns budget period and display settings for the budget
|
|
11620
12520
|
associated with this API token.<p> These control how budget **periods** are calculated
|
|
11621
|
-
(granularity, anchor date, rollover, and related options).
|
|
12521
|
+
(granularity, anchor date, rollover, and related options). For general
|
|
12522
|
+
budget preferences such as currency and locale, see
|
|
12523
|
+
[/me/account/settings](#tag/me/GET/me/account/settings).
|
|
11622
12524
|
operationId: getBudgetSettings
|
|
11623
12525
|
responses:
|
|
11624
12526
|
"200":
|
|
@@ -11774,4 +12676,3 @@ paths:
|
|
|
11774
12676
|
|
|
11775
12677
|
security:
|
|
11776
12678
|
- bearerSecurity: []
|
|
11777
|
-
- cookieAuth: []
|