@lunch-money/developer-docs 2.11.1-preview.7 → 2.11.1-preview.9

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.
@@ -6,36 +6,19 @@ info:
6
6
 
7
7
  Welcome to the Lunch Money v2 API reference. This is the **v2.11.1** spec.
8
8
 
9
- > [!warning]
10
- > **Preview endpoints (subject to change)**
11
- >
12
- > - [`GET /v2/me/account/settings`](#tag/me/GET/me/account/settings)
13
- > - [`PUT /v2/me/account/settings`](#tag/me/PUT/me/account/settings)
14
- > - [`GET /v2/me/user/settings`](#tag/me/GET/me/user/settings)
15
- > - [`PUT /v2/me/user/settings`](#tag/me/PUT/me/user/settings)
16
- >
17
- > <p class="preview-endpoints-footer" style="margin:0.85em 0 0;padding:0;text-align:left;width:100%;box-sizing:border-box">Do not release production apps using these endpoints. Feedback is welcome. <a href="mailto:dev-support@lunchmoney.app">Email dev-support@lunchmoney.app</a> or join us in the <a href="https://discord.com/channels/842337014556262411/1134594318414389258">developers channel</a> on the <a href="https://lunchmoney.app/discord">Lunch Money Discord</a>.</p>
18
-
19
- The most recent stable version of the API is v2.11.0 and is available at:
20
- `https://api.lunchmoney.dev/v2`
21
-
22
- See the [stable Developer Portal](https://lunchmoney.dev/v2).
23
-
24
- ------------------------------------------------------------------------------------------------
25
-
26
- The API is available at `https://api-beta.lunchmoney.app/v2`. Get your access token from the [Lunch Money developers page](https://my.lunchmoney.app/developers).
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).
27
10
 
28
11
 
29
12
  **Try it from these docs**
30
13
 
31
14
  These docs are interactive — use **Test request** on any endpoint to call the API from this page.
32
15
  Choose a LIVE or MOCK service from the Server dropdown.
33
- Requests sent to `https://api-beta.lunchmoney.app/v2` can <span class="red-text"><strong>change or delete</strong></span> your data and are <span class="red-text"><strong>permanent</strong></span>.
34
- See the [Getting Started Guide](https://beta.lunchmoney.dev/v2/getting-started) before using the live API.
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.
35
18
 
36
19
  **Static mock server**
37
20
 
38
- Explore without risk to real data. Select `https://beta-mock.lunchmoney.dev/v2` in the Server dropdown to work with static mock data.
21
+ Explore without risk to real data. Select `http://mock.lunchmoney.dev/v2` in the Server dropdown to work with static mock data.
39
22
  POST, PUT, and DELETE requests will return realistic responses, but do not change the mock data.
40
23
 
41
24
 
@@ -45,14 +28,14 @@ info:
45
28
 
46
29
  **Migrating from v1**
47
30
 
48
- The v2 API is not backwards compatible with v1. See the [Migration Guide](https://beta.lunchmoney.dev/v2/migration-guide) for details.
31
+ The v2 API is not backwards compatible with v1. See the [Migration Guide](https://lunchmoney.dev/v2/migration-guide) for details.
49
32
 
50
33
  **Useful links**
51
- - [Getting Started Guide](https://beta.lunchmoney.dev/v2/getting-started)
52
- - [v2 API Overview](https://beta.lunchmoney.dev/v2/overview)
53
- - [Version History](https://beta.lunchmoney.dev/v2/version-history)
54
- - [Migration Guide](https://beta.lunchmoney.dev/v2/migration-guide)
55
- - [Rate Limits](https://beta.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)
56
39
  termsOfService: https://lunchmoney.dev/#current-status
57
40
  contact:
58
41
  email: devsupport@lunchmoney.app
@@ -62,17 +45,19 @@ info:
62
45
  version: 2.11.1
63
46
 
64
47
  servers:
65
- - url: https://api-beta.lunchmoney.app/v2
48
+ - url: https://api.lunchmoney.dev/v2
66
49
  description: ⚠ LIVE — changes real Lunch Money data
67
- - url: https://beta-mock.lunchmoney.dev/v2
50
+ - url: http://mock.lunchmoney.dev/v2
68
51
  description: MOCK — static demo data, no API key required
69
52
 
70
53
  tags:
71
54
  - name: me
72
55
  description: View details and settings for the current user and account.<p>
73
- Use [/me/account/settings](#tag/me/GET/me/account/settings) and
74
- [/me/user/settings](#tag/me/GET/me/user/settings) for account- and
75
- user-level preferences.
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 budgeting account.
76
61
  - name: categories
77
62
  description: Work with categories
78
63
  externalDocs:
@@ -3073,7 +3058,7 @@ components:
3073
3058
  currency:
3074
3059
  description: Three-letter lowercase currency code of the transaction
3075
3060
  in ISO 4217 format. Must match one of the [supported
3076
- currencies](https://beta.lunchmoney.dev/v2/currencies). If not set
3061
+ currencies](https://lunchmoney.dev/v2/currencies). If not set
3077
3062
  defaults to the user account's primary currency.
3078
3063
  allOf:
3079
3064
  - $ref: "#/components/schemas/currencyEnum"
@@ -3815,6 +3800,7 @@ components:
3815
3800
  - budget_rollover_left_to_budget
3816
3801
 
3817
3802
  weekStartsOnEnum:
3803
+ x-internal: true
3818
3804
  type: string
3819
3805
  title: week starts on enum
3820
3806
  enum:
@@ -3823,6 +3809,7 @@ components:
3823
3809
  description: The day on which a calendar week begins.
3824
3810
 
3825
3811
  monthYearFormatEnum:
3812
+ x-internal: true
3826
3813
  type: string
3827
3814
  title: month and year format enum
3828
3815
  description: Format string for displaying month and year values
@@ -3849,6 +3836,7 @@ components:
3849
3836
  - "YYYY/MM"
3850
3837
 
3851
3838
  monthDayYearFormatEnum:
3839
+ x-internal: true
3852
3840
  type: string
3853
3841
  title: month, day and year format enum
3854
3842
  description: Format string for displaying full dates in the
@@ -3906,6 +3894,7 @@ components:
3906
3894
  - "M/DD/YYYY"
3907
3895
 
3908
3896
  monthDayFormatEnum:
3897
+ x-internal: true
3909
3898
  type: string
3910
3899
  title: month and day format enum
3911
3900
  description: Format string for displaying month and day values
@@ -3948,6 +3937,98 @@ components:
3948
3937
  - "DD.M"
3949
3938
  - "DD/M"
3950
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
+
3951
4032
  accountSettingsObject:
3952
4033
  type: object
3953
4034
  title: account settings object
@@ -3971,13 +4052,19 @@ components:
3971
4052
  description: Display name of the budgeting account in the Lunch Money
3972
4053
  app.
3973
4054
  locale:
3974
- type: string
3975
- description: Locale used for formatting dates and numbers in the
3976
- Lunch Money app (for example, `en-US`). When no locale is explicitly
3977
- stored for the account, the effective locale is derived from the
3978
- `default_locale` associated with `primary_currency` in the
3979
- currencies table (for example, `usd` → `en-US`, `cad` → `en-CA`,
3980
- `gbp` → `en-GB`).
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`).
3981
4068
  auto_create_category_rules:
3982
4069
  type: boolean
3983
4070
  default: true
@@ -3988,16 +4075,11 @@ components:
3988
4075
  default: true
3989
4076
  description: If `true`, suggested transaction rules are created
3990
4077
  automatically.
3991
- auto_review_transaction_on_update:
3992
- type: boolean
3993
- default: true
3994
- description: If `true`, transactions are marked as reviewed when
3995
- updated.
3996
- auto_review_transaction_on_creation:
4078
+ include_pending_in_totals:
3997
4079
  type: boolean
3998
4080
  default: true
3999
- description: If `true`, transactions are marked as reviewed when
4000
- created.
4081
+ description: If `true`, pending transactions are included in account
4082
+ totals.
4001
4083
  required:
4002
4084
  - primary_currency
4003
4085
  - supported_currencies
@@ -4005,13 +4087,13 @@ components:
4005
4087
  - locale
4006
4088
  - auto_create_category_rules
4007
4089
  - auto_create_suggested_transaction_rules
4008
- - auto_review_transaction_on_update
4009
- - auto_review_transaction_on_creation
4090
+ - include_pending_in_totals
4010
4091
 
4011
4092
  updateAccountSettingsRequestObject:
4012
4093
  x-internal: true
4013
4094
  type: object
4014
4095
  additionalProperties: false
4096
+ minProperties: 1
4015
4097
  description: Request body for updating account settings. Include at least
4016
4098
  one property to update.
4017
4099
  properties:
@@ -4033,9 +4115,15 @@ components:
4033
4115
  description: If set, updates the display name of the budgeting account.
4034
4116
  x-updatable: true
4035
4117
  locale:
4036
- type: string
4037
- description: If set, updates the locale used for formatting dates and
4038
- numbers in the Lunch Money app.
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).
4039
4127
  x-updatable: true
4040
4128
  auto_create_category_rules:
4041
4129
  type: boolean
@@ -4047,15 +4135,70 @@ components:
4047
4135
  description: If set, updates whether suggested transaction rules are
4048
4136
  created automatically.
4049
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
+ budgeting 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 budgeting account. Must identify a
4166
+ manual account returned by
4167
+ [GET /manual_accounts](#tag/manual_accounts/GET/manual_accounts) for
4168
+ the current budgeting 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 budgeting account. Include at least one property
4181
+ to update.
4182
+ properties:
4050
4183
  auto_review_transaction_on_update:
4051
4184
  type: boolean
4052
4185
  description: If set, updates whether transactions are marked as reviewed
4053
- when updated.
4186
+ when their date, category, payee, amount, account, or notes are
4187
+ changed.
4054
4188
  x-updatable: true
4055
4189
  auto_review_transaction_on_creation:
4056
4190
  type: boolean
4057
- description: If set, updates whether transactions are marked as reviewed
4058
- when created.
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 budgeting
4199
+ account. Must identify a manual account returned by
4200
+ [GET /manual_accounts](#tag/manual_accounts/GET/manual_accounts) for
4201
+ the current budgeting account. Set to `null` to clear the selection.
4059
4202
  x-updatable: true
4060
4203
 
4061
4204
  userSettingsObject:
@@ -4131,6 +4274,7 @@ components:
4131
4274
  x-internal: true
4132
4275
  type: object
4133
4276
  additionalProperties: false
4277
+ minProperties: 1
4134
4278
  description: Request body for updating user settings. Include at least one
4135
4279
  property to update.
4136
4280
  properties:
@@ -4955,9 +5099,58 @@ components:
4955
5099
  bearerSecurity:
4956
5100
  type: http
4957
5101
  description: >-
4958
- Required for the LIVE server. Optional for MOCK.
5102
+ A Lunch Money personal access token. Required for the LIVE server and
5103
+ optional for MOCK.
4959
5104
  scheme: bearer
4960
5105
  bearerFormat: JWT
5106
+ oauth2Security:
5107
+ type: oauth2
5108
+ description: >-
5109
+ An OAuth 2.0 access token issued to a registered Lunch Money app.
5110
+ Each operation lists the scope required to call it.
5111
+ flows:
5112
+ authorizationCode:
5113
+ authorizationUrl: https://api.lunchmoney.dev/oauth/authorize
5114
+ tokenUrl: https://api.lunchmoney.dev/oauth/token
5115
+ scopes:
5116
+ offline_access: "Allow this app to maintain access without asking you to sign in and authorize it again"
5117
+ me:read: "View your Lunch Money identity and account, user, and budget settings"
5118
+ me:update: "Update your Lunch Money account, user, and budget settings"
5119
+ summary:read: "View your budget summary"
5120
+ categories:read: "View categories and category groups"
5121
+ categories:create: "Create categories and category groups"
5122
+ categories:update: "Update categories and category groups"
5123
+ categories:delete: "Delete categories and category groups"
5124
+ crypto_manual:read: "View supported cryptocurrencies and manually managed cryptocurrency balances"
5125
+ crypto_manual:create: "Add supported cryptocurrencies and create manually managed cryptocurrency balances"
5126
+ crypto_manual:update: "Update manually managed cryptocurrency balances"
5127
+ crypto_manual:delete: "Delete manually managed cryptocurrency balances"
5128
+ crypto_synced:read: "View synced cryptocurrency accounts and balances"
5129
+ crypto_synced:update: "Refresh balances for synced cryptocurrency accounts"
5130
+ balance_history:read: "View balance history for accounts and synced cryptocurrency balances"
5131
+ balance_history:update: "Create or update balance history and details for deleted accounts"
5132
+ balance_history:delete: "Delete balance history for accounts and synced cryptocurrency balances"
5133
+ manual_accounts:read: "View manually managed accounts"
5134
+ manual_accounts:create: "Create manually managed accounts"
5135
+ manual_accounts:update: "Update manually managed accounts"
5136
+ manual_accounts:delete: "Delete manually managed accounts"
5137
+ plaid_accounts:read: "View accounts connected through Plaid"
5138
+ plaid_accounts:update: "Request a Plaid account refresh, which may import new transactions"
5139
+ transactions:read: "View transactions, including split and group information and attachment metadata"
5140
+ transactions:create: "Create transactions"
5141
+ transactions:update: "Update, split, unsplit, group, and ungroup transactions"
5142
+ transactions:delete: "Delete transactions"
5143
+ transaction_attachments:read: "Get download access to transaction attachments"
5144
+ transaction_attachments:create: "Attach files to transactions"
5145
+ transaction_attachments:delete: "Delete transaction attachments"
5146
+ tags:read: "View tags"
5147
+ tags:create: "Create tags"
5148
+ tags:update: "Update tags"
5149
+ tags:delete: "Delete tags"
5150
+ recurring_items:read: "View recurring items"
5151
+ budgets:read: "View budget period settings"
5152
+ budgets:update: "Create or update budget amounts"
5153
+ budgets:delete: "Delete budget amounts"
4961
5154
 
4962
5155
  paths:
4963
5156
  /me:
@@ -4967,12 +5160,19 @@ paths:
4967
5160
  summary: Get current user
4968
5161
  description: |-
4969
5162
  Get details about the user associated with the supplied authorization
4970
- token.<p> For account- and user-level preferences, prefer
4971
- [/me/account/settings](#tag/me/GET/me/account/settings) and
4972
- [/me/user/settings](#tag/me/GET/me/user/settings). Properties such as
4973
- `primary_currency` and `budget_name` remain on this response for
4974
- backwards compatibility.
5163
+ token.<p> Use [/me/user/settings](#tag/me/GET/me/user/settings) for
5164
+ user-wide preferences,
5165
+ [/me/account/settings](#tag/me/GET/me/account/settings) for account-wide
5166
+ preferences, and
5167
+ [/me/user/account/settings](#tag/me/GET/me/user/account/settings) for
5168
+ preferences specific to the current user and budgeting account.
5169
+ Properties such as `primary_currency` and `budget_name` remain on this
5170
+ response for backwards compatibility.
4975
5171
  operationId: getMe
5172
+ security:
5173
+ - bearerSecurity: []
5174
+ - oauth2Security:
5175
+ - me:read
4976
5176
  parameters: []
4977
5177
  responses:
4978
5178
  "200":
@@ -5000,14 +5200,14 @@ paths:
5000
5200
  tags:
5001
5201
  - me
5002
5202
  summary: Get account settings
5003
- description: |-
5004
- > [!warning]
5005
- > **Preview endpoint** — behavior is subject to change. This endpoint is available in the mock server but not implemented yet on the live api service. Design feedback is welcome. [Email dev-support@lunchmoney.app](mailto:dev-support@lunchmoney.app) or join us in the [developers channel](https://discord.com/channels/842337014556262411/1134594318414389258) on the [Lunch Money Discord](https://lunchmoney.app/discord).
5006
-
5007
-
5008
- Returns account-level settings for the budgeting account associated with the authorized API token.<p>
5009
- These settings apply only to this budgeting account; a user with access to multiple budgets has separate account settings for each.
5203
+ description: >-
5204
+ Returns settings for the current budgeting account. These settings apply
5205
+ regardless of which user is accessing the account.
5010
5206
  operationId: getAccountSettings
5207
+ security:
5208
+ - bearerSecurity: []
5209
+ - oauth2Security:
5210
+ - me:read
5011
5211
  responses:
5012
5212
  "200":
5013
5213
  description: Account settings for the current budgeting account
@@ -5025,8 +5225,7 @@ paths:
5025
5225
  locale: en-US
5026
5226
  auto_create_category_rules: true
5027
5227
  auto_create_suggested_transaction_rules: true
5028
- auto_review_transaction_on_update: true
5029
- auto_review_transaction_on_creation: true
5228
+ include_pending_in_totals: true
5030
5229
  "401":
5031
5230
  $ref: "#/components/responses/unauthorizedToken"
5032
5231
  "429":
@@ -5038,19 +5237,16 @@ paths:
5038
5237
  - me
5039
5238
  summary: Update account settings
5040
5239
  description: |-
5041
- > [!warning]
5042
- > **Preview endpoint** — behavior is subject to change. This endpoint is available in the mock server but not implemented yet on the live api service. Design feedback is welcome. [Email dev-support@lunchmoney.app](mailto:dev-support@lunchmoney.app) or join us in the [developers channel](https://discord.com/channels/842337014556262411/1134594318414389258) on the [Lunch Money Discord](https://lunchmoney.app/discord).
5043
-
5044
-
5045
5240
  Updates account-level settings for the budgeting account
5046
- associated with the authorized API token.<p>
5047
- These settings apply only to this budgeting account; a user with access to multiple budgets has separate account settings for each.<p>
5048
- You may submit the response from a
5049
- `GET /me/account/settings` as the request body; however, only certain
5050
- properties can be updated.<p> It is also possible to provide only the
5051
- properties to be updated in the request body, as long as the request
5052
- includes at least one updatable property.
5241
+ associated with the authorized API token. Submit the full response from
5242
+ `GET /me/account/settings` with one or more properties changed, or
5243
+ provide only the properties to update. The request body must include at
5244
+ least one property.
5053
5245
  operationId: updateAccountSettings
5246
+ security:
5247
+ - bearerSecurity: []
5248
+ - oauth2Security:
5249
+ - me:update
5054
5250
  requestBody:
5055
5251
  required: true
5056
5252
  content:
@@ -5064,7 +5260,7 @@ paths:
5064
5260
  Update automation preferences:
5065
5261
  value:
5066
5262
  auto_create_category_rules: false
5067
- auto_review_transaction_on_creation: false
5263
+ include_pending_in_totals: false
5068
5264
  responses:
5069
5265
  "200":
5070
5266
  description: Account settings updated successfully
@@ -5089,14 +5285,15 @@ paths:
5089
5285
  tags:
5090
5286
  - me
5091
5287
  summary: Get user settings
5092
- description: |-
5093
- > [!warning]
5094
- > **Preview endpoint** — behavior is subject to change. This endpoint is available in the mock server but not implemented yet on the live api service. Design feedback is welcome. [Email dev-support@lunchmoney.app](mailto:dev-support@lunchmoney.app) or join us in the [developers channel](https://discord.com/channels/842337014556262411/1134594318414389258) on the [Lunch Money Discord](https://lunchmoney.app/discord).
5095
-
5096
-
5097
- Returns user-level display and formatting preferences for the user associated with the authorized API token.<p>
5098
- User settings belong to the user and apply across all budgets they can access.
5288
+ description: >-
5289
+ Returns display and formatting preferences for the authorized user.
5290
+ These settings apply across every budgeting account the user owns or
5291
+ collaborates on.
5099
5292
  operationId: getUserSettings
5293
+ security:
5294
+ - bearerSecurity: []
5295
+ - oauth2Security:
5296
+ - me:read
5100
5297
  responses:
5101
5298
  "200":
5102
5299
  description: User settings for the authorized user
@@ -5125,22 +5322,19 @@ paths:
5125
5322
  - me
5126
5323
  summary: Update user settings
5127
5324
  description: |-
5128
- > [!warning]
5129
- > **Preview endpoint** — behavior is subject to change. This endpoint is available in the mock server but not implemented yet on the live api service. Design feedback is welcome. [Email dev-support@lunchmoney.app](mailto:dev-support@lunchmoney.app) or join us in the [developers channel](https://discord.com/channels/842337014556262411/1134594318414389258) on the [Lunch Money Discord](https://lunchmoney.app/discord).
5130
-
5131
-
5132
5325
  Updates user-level display and formatting preferences for the user
5133
- associated with the authorized API token.<p>
5134
- User settings belong to the user and apply across all budgets they can access.<p>
5135
- You may submit the response from a
5136
- from a `GET /me/user/settings` as the request body; however, only
5137
- certain properties can be updated.<p> It is also possible to provide
5138
- only the properties to be updated in the request body, as long as the
5139
- request includes at least one updatable property.<p> Updating
5326
+ associated with the authorized API token. Submit the full response from
5327
+ `GET /me/user/settings` with one or more properties changed, or provide
5328
+ only the properties to update. The request body must include at least
5329
+ one property.<p> Updating
5140
5330
  `show_debits_as_negative` affects display in the Lunch Money app only.
5141
5331
  Amount fields in API responses always use positive values for debits and
5142
5332
  negative values for credits.
5143
5333
  operationId: updateUserSettings
5334
+ security:
5335
+ - bearerSecurity: []
5336
+ - oauth2Security:
5337
+ - me:update
5144
5338
  requestBody:
5145
5339
  required: true
5146
5340
  content:
@@ -5176,6 +5370,96 @@ paths:
5176
5370
  $ref: "#/components/responses/rateLimited"
5177
5371
  "500":
5178
5372
  $ref: "#/components/responses/serverError"
5373
+ /me/user/account/settings:
5374
+ get:
5375
+ tags:
5376
+ - me
5377
+ summary: Get user account settings
5378
+ description: >-
5379
+ Returns settings specific to the authorized user within the current
5380
+ budgeting account. These settings do not affect other users or the
5381
+ authorized user's settings in other budgeting accounts.
5382
+ operationId: getUserAccountSettings
5383
+ security:
5384
+ - bearerSecurity: []
5385
+ - oauth2Security:
5386
+ - me:read
5387
+ responses:
5388
+ "200":
5389
+ description: Settings for the authorized user in the current budgeting
5390
+ account
5391
+ content:
5392
+ application/json:
5393
+ schema:
5394
+ $ref: "#/components/schemas/userAccountSettingsObject"
5395
+ example:
5396
+ auto_review_transaction_on_update: true
5397
+ auto_review_transaction_on_creation: true
5398
+ default_manual_account_id: null
5399
+ "401":
5400
+ $ref: "#/components/responses/unauthorizedToken"
5401
+ "429":
5402
+ $ref: "#/components/responses/rateLimited"
5403
+ "500":
5404
+ $ref: "#/components/responses/serverError"
5405
+ put:
5406
+ tags:
5407
+ - me
5408
+ summary: Update user account settings
5409
+ description: |-
5410
+ Updates settings specific to the authorized user within the current
5411
+ budgeting account. Submit the full response from
5412
+ `GET /me/user/account/settings` with one or more properties changed, or
5413
+ provide only the properties to update. The request body must include at
5414
+ least one property.
5415
+ operationId: updateUserAccountSettings
5416
+ security:
5417
+ - bearerSecurity: []
5418
+ - oauth2Security:
5419
+ - me:update
5420
+ requestBody:
5421
+ required: true
5422
+ content:
5423
+ application/json:
5424
+ schema:
5425
+ $ref: "#/components/schemas/updateUserAccountSettingsRequestObject"
5426
+ examples:
5427
+ Update review preference:
5428
+ value:
5429
+ auto_review_transaction_on_creation: false
5430
+ Clear default manual account:
5431
+ value:
5432
+ default_manual_account_id: null
5433
+ responses:
5434
+ "200":
5435
+ description: User account settings updated successfully
5436
+ content:
5437
+ application/json:
5438
+ schema:
5439
+ $ref: "#/components/schemas/userAccountSettingsObject"
5440
+ examples:
5441
+ Update review preference:
5442
+ value:
5443
+ auto_review_transaction_on_update: true
5444
+ auto_review_transaction_on_creation: false
5445
+ default_manual_account_id: null
5446
+ Clear default manual account:
5447
+ value:
5448
+ auto_review_transaction_on_update: true
5449
+ auto_review_transaction_on_creation: true
5450
+ default_manual_account_id: null
5451
+ "400":
5452
+ description: Invalid request body
5453
+ content:
5454
+ application/json:
5455
+ schema:
5456
+ $ref: "#/components/schemas/errorResponseObject"
5457
+ "401":
5458
+ $ref: "#/components/responses/unauthorizedToken"
5459
+ "429":
5460
+ $ref: "#/components/responses/rateLimited"
5461
+ "500":
5462
+ $ref: "#/components/responses/serverError"
5179
5463
  /summary:
5180
5464
  get:
5181
5465
  tags:
@@ -5187,6 +5471,10 @@ paths:
5187
5471
  budget objects.
5188
5472
 
5189
5473
  operationId: getBudgetSummary
5474
+ security:
5475
+ - bearerSecurity: []
5476
+ - oauth2Security:
5477
+ - summary:read
5190
5478
  parameters:
5191
5479
  - in: query
5192
5480
  name: start_date
@@ -5702,6 +5990,10 @@ paths:
5702
5990
  description: Retrieve a list of all categories associated with the user's
5703
5991
  account.
5704
5992
  operationId: getAllCategories
5993
+ security:
5994
+ - bearerSecurity: []
5995
+ - oauth2Security:
5996
+ - categories:read
5705
5997
  parameters:
5706
5998
  - name: format
5707
5999
  in: query
@@ -5949,6 +6241,10 @@ paths:
5949
6241
  this case, the `children` attribute may be set to an array of category
5950
6242
  IDs to add to the newly created category group.
5951
6243
  operationId: createCategory
6244
+ security:
6245
+ - bearerSecurity: []
6246
+ - oauth2Security:
6247
+ - categories:create
5952
6248
  requestBody:
5953
6249
  required: true
5954
6250
  content:
@@ -6054,6 +6350,10 @@ paths:
6054
6350
  description: Retrieve details of a specific category or category group by
6055
6351
  its ID.
6056
6352
  operationId: getCategoryById
6353
+ security:
6354
+ - bearerSecurity: []
6355
+ - oauth2Security:
6356
+ - categories:read
6057
6357
  parameters:
6058
6358
  - name: id
6059
6359
  in: path
@@ -6192,6 +6492,10 @@ paths:
6192
6492
 
6193
6493
  It is possible to modify the children of an existing category group with this API by setting the `children` attribute. If this is set, it will replace the existing children with the newly specified children. If the intention is to add or remove a single category, it is more straightforward to update the child category by specifying the new `group_id` attribute. If the goal is to add multiple new children or remove multiple existing children, it is recommended to first call the `GET /categories/{id}` endpoint to get the existing children and then modify the list as desired.<br><br>
6194
6494
  operationId: updateCategory
6495
+ security:
6496
+ - bearerSecurity: []
6497
+ - oauth2Security:
6498
+ - categories:update
6195
6499
  parameters:
6196
6500
  - name: id
6197
6501
  in: path
@@ -6344,6 +6648,10 @@ paths:
6344
6648
  recurring items, etc. If there are dependents, this endpoint will return
6345
6649
  an object that describes the number and type of existing dependencies.
6346
6650
  operationId: deleteCategory
6651
+ security:
6652
+ - bearerSecurity: []
6653
+ - oauth2Security:
6654
+ - categories:delete
6347
6655
  parameters:
6348
6656
  - in: path
6349
6657
  name: id
@@ -6427,6 +6735,10 @@ paths:
6427
6735
  Retrieve the list of cryptocurrencies currently supported for manual tracking.<p>
6428
6736
  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.
6429
6737
  operationId: getAllCryptocurrencies
6738
+ security:
6739
+ - bearerSecurity: []
6740
+ - oauth2Security:
6741
+ - crypto_manual:read
6430
6742
  responses:
6431
6743
  "200":
6432
6744
  description: A list of supported cryptocurrencies
@@ -6463,6 +6775,10 @@ paths:
6463
6775
  - crypto-manual
6464
6776
  summary: Add a new supported cryptocurrency
6465
6777
  operationId: createCryptocurrency
6778
+ security:
6779
+ - bearerSecurity: []
6780
+ - oauth2Security:
6781
+ - crypto_manual:create
6466
6782
  description: |-
6467
6783
  Adds a new cryptocurrency to the supported manual-crypto list.<br><br>
6468
6784
  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.
@@ -6547,6 +6863,10 @@ paths:
6547
6863
  description: |-
6548
6864
  Retrieve all manually managed crypto balances associated with the user's account.
6549
6865
  operationId: getAllCryptoManual
6866
+ security:
6867
+ - bearerSecurity: []
6868
+ - oauth2Security:
6869
+ - crypto_manual:read
6550
6870
  responses:
6551
6871
  "200":
6552
6872
  description: A list of manual crypto balances
@@ -6583,6 +6903,10 @@ paths:
6583
6903
  Create a manually managed crypto asset.<br><br>
6584
6904
  If `display_name` is `null`, clients may derive one from `institution_name` + `name`.
6585
6905
  operationId: createCryptoManual
6906
+ security:
6907
+ - bearerSecurity: []
6908
+ - oauth2Security:
6909
+ - crypto_manual:create
6586
6910
  requestBody:
6587
6911
  required: true
6588
6912
  content:
@@ -6669,6 +6993,10 @@ paths:
6669
6993
  description: |-
6670
6994
  Retrieve a single manually managed crypto balance by ID.
6671
6995
  operationId: getCryptoManualById
6996
+ security:
6997
+ - bearerSecurity: []
6998
+ - oauth2Security:
6999
+ - crypto_manual:read
6672
7000
  parameters:
6673
7001
  - name: id
6674
7002
  in: path
@@ -6739,6 +7067,10 @@ paths:
6739
7067
  Modify a manually managed crypto balance.<br><br>
6740
7068
  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.
6741
7069
  operationId: updateCryptoManual
7070
+ security:
7071
+ - bearerSecurity: []
7072
+ - oauth2Security:
7073
+ - crypto_manual:update
6742
7074
  parameters:
6743
7075
  - name: id
6744
7076
  in: path
@@ -6837,6 +7169,10 @@ paths:
6837
7169
  description: |-
6838
7170
  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`.
6839
7171
  operationId: deleteCryptoManual
7172
+ security:
7173
+ - bearerSecurity: []
7174
+ - oauth2Security:
7175
+ - crypto_manual:delete
6840
7176
  parameters:
6841
7177
  - name: id
6842
7178
  in: path
@@ -6903,6 +7239,10 @@ paths:
6903
7239
  description: |-
6904
7240
  Retrieves all synced crypto accounts associated with the user's account.
6905
7241
  operationId: getAllCryptoSynced
7242
+ security:
7243
+ - bearerSecurity: []
7244
+ - oauth2Security:
7245
+ - crypto_synced:read
6906
7246
  responses:
6907
7247
  "200":
6908
7248
  description: A list of synced crypto accounts
@@ -6966,6 +7306,10 @@ paths:
6966
7306
  description: |-
6967
7307
  Retrieves the synced crypto account and all nested balances for the specified synced crypto account ID.
6968
7308
  operationId: getCryptoSyncedById
7309
+ security:
7310
+ - bearerSecurity: []
7311
+ - oauth2Security:
7312
+ - crypto_synced:read
6969
7313
  parameters:
6970
7314
  - name: id
6971
7315
  in: path
@@ -7047,6 +7391,10 @@ paths:
7047
7391
  description: |-
7048
7392
  Retrieves a single balance from the specified synced crypto account using the crypto symbol.
7049
7393
  operationId: getCryptoSyncedBalanceBySymbol
7394
+ security:
7395
+ - bearerSecurity: []
7396
+ - oauth2Security:
7397
+ - crypto_synced:read
7050
7398
  parameters:
7051
7399
  - name: id
7052
7400
  in: path
@@ -7127,6 +7475,10 @@ paths:
7127
7475
  description: |-
7128
7476
  Trigger a balance refresh for the specified synced crypto account. Returns the refreshed synced crypto account.
7129
7477
  operationId: refreshCryptoSynced
7478
+ security:
7479
+ - bearerSecurity: []
7480
+ - oauth2Security:
7481
+ - crypto_synced:update
7130
7482
  parameters:
7131
7483
  - name: id
7132
7484
  in: path
@@ -7207,6 +7559,10 @@ paths:
7207
7559
  &nbsp;&nbsp;&nbsp;&nbsp;- `crypto_manual`: `source.crypto_manual_id` with [GET /crypto/manual/{id}](#tag/crypto-manual/GET/crypto/manual/{id})<br>
7208
7560
  &nbsp;&nbsp;&nbsp;&nbsp;- `crypto_synced`: `source.crypto_synced_id` and `source.symbol` with [GET /crypto/synced/{id}/{symbol}](#tag/crypto-synced/GET/crypto/synced/{id}/{symbol})
7209
7561
  operationId: getBalanceHistory
7562
+ security:
7563
+ - bearerSecurity: []
7564
+ - oauth2Security:
7565
+ - balance_history:read
7210
7566
  parameters:
7211
7567
  - name: start_month
7212
7568
  in: query
@@ -7462,6 +7818,10 @@ paths:
7462
7818
  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>
7463
7819
  `start_month`, `end_month`, and current-month entries behave as described in [GET /balance_history](#tag/balance-history/GET/balance_history).
7464
7820
  operationId: getBalanceHistoryForAccount
7821
+ security:
7822
+ - bearerSecurity: []
7823
+ - oauth2Security:
7824
+ - balance_history:read
7465
7825
  parameters:
7466
7826
  - name: account_type
7467
7827
  in: path
@@ -7598,6 +7958,10 @@ paths:
7598
7958
  `crypto_balance` may be provided for `crypto_manual` and `deleted` accounts. It is invalid for `manual` or `plaid` accounts.<br><br>
7599
7959
  The response contains only the `type: historical` balance entries that were submitted in this request.
7600
7960
  operationId: upsertBalanceHistoryForAccount
7961
+ security:
7962
+ - bearerSecurity: []
7963
+ - oauth2Security:
7964
+ - balance_history:update
7601
7965
  parameters:
7602
7966
  - name: account_type
7603
7967
  in: path
@@ -7794,6 +8158,10 @@ paths:
7794
8158
  description: |-
7795
8159
  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}).
7796
8160
  operationId: deleteBalanceHistoryForAccount
8161
+ security:
8162
+ - bearerSecurity: []
8163
+ - oauth2Security:
8164
+ - balance_history:delete
7797
8165
  parameters:
7798
8166
  - name: account_type
7799
8167
  in: path
@@ -7840,6 +8208,10 @@ paths:
7840
8208
  The path selects one balance stream with a synced crypto account id and `symbol`.<br><br>
7841
8209
  `start_month`, `end_month`, and current-month entries behave as described in [GET /balance_history](#tag/balance-history/GET/balance_history).
7842
8210
  operationId: getBalanceHistoryForCryptoSynced
8211
+ security:
8212
+ - bearerSecurity: []
8213
+ - oauth2Security:
8214
+ - balance_history:read
7843
8215
  parameters:
7844
8216
  - name: account_id
7845
8217
  in: path
@@ -7948,6 +8320,10 @@ paths:
7948
8320
  `crypto_balance` may be provided for synced crypto balances.<br><br>
7949
8321
  The response contains only the `type: historical` balance entries that were submitted in this request.
7950
8322
  operationId: upsertBalanceHistoryForCryptoSynced
8323
+ security:
8324
+ - bearerSecurity: []
8325
+ - oauth2Security:
8326
+ - balance_history:update
7951
8327
  parameters:
7952
8328
  - name: account_id
7953
8329
  in: path
@@ -8092,6 +8468,10 @@ paths:
8092
8468
  Delete all historical balance entries for a single synced crypto symbol stream.<br><br>
8093
8469
  The path identifies both the synced crypto account and the symbol whose history should be deleted.
8094
8470
  operationId: deleteBalanceHistoryForCryptoSynced
8471
+ security:
8472
+ - bearerSecurity: []
8473
+ - oauth2Security:
8474
+ - balance_history:delete
8095
8475
  parameters:
8096
8476
  - name: account_id
8097
8477
  in: path
@@ -8135,6 +8515,10 @@ paths:
8135
8515
  description: |-
8136
8516
  Delete a single stored (`type: historical`) monthly balance history entry by its id. Ephemeral `current` entries cannot be deleted this way.
8137
8517
  operationId: deleteBalanceHistoryEntry
8518
+ security:
8519
+ - bearerSecurity: []
8520
+ - oauth2Security:
8521
+ - balance_history:delete
8138
8522
  parameters:
8139
8523
  - name: id
8140
8524
  in: path
@@ -8181,6 +8565,10 @@ paths:
8181
8565
  Update archived metadata for a deleted balance history source.<br><br>
8182
8566
  Pass the `deleted_account_id` from a `source.type: deleted` entry. The update applies to all historical entries associated with that deleted source.
8183
8567
  operationId: updateBalanceHistoryDetails
8568
+ security:
8569
+ - bearerSecurity: []
8570
+ - oauth2Security:
8571
+ - balance_history:update
8184
8572
  parameters:
8185
8573
  - name: account_id
8186
8574
  in: path
@@ -8252,6 +8640,10 @@ paths:
8252
8640
  description: Retrieve a list of all manually-managed accounts associated
8253
8641
  with the user's account.
8254
8642
  operationId: getAllManualAccounts
8643
+ security:
8644
+ - bearerSecurity: []
8645
+ - oauth2Security:
8646
+ - manual_accounts:read
8255
8647
  responses:
8256
8648
  "200":
8257
8649
  description: A list of manual accounts
@@ -8327,6 +8719,10 @@ paths:
8327
8719
  summary: Create a manual account
8328
8720
  description: Create a new manually-managed account.
8329
8721
  operationId: createManualAccount
8722
+ security:
8723
+ - bearerSecurity: []
8724
+ - oauth2Security:
8725
+ - manual_accounts:create
8330
8726
  requestBody:
8331
8727
  required: true
8332
8728
  content:
@@ -8461,6 +8857,10 @@ paths:
8461
8857
  description: Retrieve the details of the manual account with the specified
8462
8858
  ID.
8463
8859
  operationId: getManualAccountById
8860
+ security:
8861
+ - bearerSecurity: []
8862
+ - oauth2Security:
8863
+ - manual_accounts:read
8464
8864
  parameters:
8465
8865
  - name: id
8466
8866
  in: path
@@ -8545,6 +8945,10 @@ paths:
8545
8945
  properties that is not listed above. For example a request body that contains only a `name` property is valid.<br><br>
8546
8946
 
8547
8947
  operationId: updateManualAccount
8948
+ security:
8949
+ - bearerSecurity: []
8950
+ - oauth2Security:
8951
+ - manual_accounts:update
8548
8952
  parameters:
8549
8953
  - name: id
8550
8954
  in: path
@@ -8688,6 +9092,10 @@ paths:
8688
9092
  property set to this account's ID they will appear with a warning when
8689
9093
  displayed in the web view.
8690
9094
  operationId: deleteManualAccount
9095
+ security:
9096
+ - bearerSecurity: []
9097
+ - oauth2Security:
9098
+ - manual_accounts:delete
8691
9099
  parameters:
8692
9100
  - in: path
8693
9101
  name: id
@@ -8747,6 +9155,10 @@ paths:
8747
9155
  description: Retrieve a list of all synced accounts associated with the
8748
9156
  user's account.
8749
9157
  operationId: getAllPlaidAccounts
9158
+ security:
9159
+ - bearerSecurity: []
9160
+ - oauth2Security:
9161
+ - plaid_accounts:read
8750
9162
  responses:
8751
9163
  "200":
8752
9164
  description: A list of accounts synced via Plaid
@@ -8853,6 +9265,10 @@ paths:
8853
9265
  description: Retrieve the details of the plaid account with the specified
8854
9266
  ID.
8855
9267
  operationId: getPlaidAccountById
9268
+ security:
9269
+ - bearerSecurity: []
9270
+ - oauth2Security:
9271
+ - plaid_accounts:read
8856
9272
  parameters:
8857
9273
  - name: id
8858
9274
  in: path
@@ -8950,6 +9366,10 @@ paths:
8950
9366
  contacts the associated financial institution. The `last_import` field
8951
9367
  is updated only when new transactions have been imported.
8952
9368
  operationId: triggerPlaidAccountFetch
9369
+ security:
9370
+ - bearerSecurity: []
9371
+ - oauth2Security:
9372
+ - plaid_accounts:update
8953
9373
  parameters:
8954
9374
  - name: start_date
8955
9375
  in: query
@@ -9035,6 +9455,10 @@ paths:
9035
9455
  account. <br>If called with no parameters, this endpoint will return the
9036
9456
  most recent transactions, up to the specified `limit`.
9037
9457
  operationId: getAllTransactions
9458
+ security:
9459
+ - bearerSecurity: []
9460
+ - oauth2Security:
9461
+ - transactions:read
9038
9462
  parameters:
9039
9463
  - name: start_date
9040
9464
  in: query
@@ -9253,19 +9677,19 @@ paths:
9253
9677
  description: Sets the maximum number of transactions to return. If
9254
9678
  more match the filter criteria, the response will include a
9255
9679
  `has_more` attribute set to `true`. See
9256
- [Pagination](https://beta.lunchmoney.dev/v2/pagination)
9680
+ [Pagination](https://lunchmoney.dev/v2/pagination)
9257
9681
  - name: offset
9258
9682
  in: query
9259
9683
  schema:
9260
9684
  type: integer
9261
9685
  description: Sets the offset for the records returned. This is
9262
9686
  typically set automatically in the header. See
9263
- [Pagination](https://beta.lunchmoney.dev/v2/pagination)
9687
+ [Pagination](https://lunchmoney.dev/v2/pagination)
9264
9688
  responses:
9265
9689
  "200":
9266
9690
  description: Returns an array of transactions. <br><br>The `has_more`
9267
9691
  property is set to `true` if more transactions are available. See
9268
- [Pagination](https://beta.lunchmoney.dev/v2/pagination)
9692
+ [Pagination](https://lunchmoney.dev/v2/pagination)
9269
9693
  content:
9270
9694
  application/json:
9271
9695
  schema:
@@ -9528,6 +9952,10 @@ paths:
9528
9952
  transactions that were duplicates of existing transactions and were not
9529
9953
  inserted.
9530
9954
  operationId: createNewTransactions
9955
+ security:
9956
+ - bearerSecurity: []
9957
+ - oauth2Security:
9958
+ - transactions:create
9531
9959
  requestBody:
9532
9960
  required: true
9533
9961
  content:
@@ -9968,6 +10396,10 @@ paths:
9968
10396
 
9969
10397
  The request can include between 1 and 500 transactions to update in a single call.
9970
10398
  operationId: updateTransactions
10399
+ security:
10400
+ - bearerSecurity: []
10401
+ - oauth2Security:
10402
+ - transactions:update
9971
10403
  requestBody:
9972
10404
  required: true
9973
10405
  content:
@@ -10336,6 +10768,10 @@ paths:
10336
10768
 
10337
10769
  <span class="red-text"><strong>Use with caution. This action is not reversible!</strong></span>
10338
10770
  operationId: deleteTransactions
10771
+ security:
10772
+ - bearerSecurity: []
10773
+ - oauth2Security:
10774
+ - transactions:delete
10339
10775
  requestBody:
10340
10776
  required: true
10341
10777
  content:
@@ -10452,6 +10888,10 @@ paths:
10452
10888
  include the `children` property which will contain a list
10453
10889
  of the split transactions.
10454
10890
  operationId: getTransactionById
10891
+ security:
10892
+ - bearerSecurity: []
10893
+ - oauth2Security:
10894
+ - transactions:read
10455
10895
  parameters:
10456
10896
  - name: id
10457
10897
  in: path
@@ -10695,6 +11135,10 @@ paths:
10695
11135
  an `category_id` attribute is valid.
10696
11136
 
10697
11137
  operationId: updateTransaction
11138
+ security:
11139
+ - bearerSecurity: []
11140
+ - oauth2Security:
11141
+ - transactions:update
10698
11142
  parameters:
10699
11143
  - name: id
10700
11144
  in: path
@@ -10829,6 +11273,10 @@ paths:
10829
11273
 
10830
11274
  <span class="red-text"><strong>Use with caution. This action is not reversible!</strong></span>
10831
11275
  operationId: deleteTransactionById
11276
+ security:
11277
+ - bearerSecurity: []
11278
+ - oauth2Security:
11279
+ - transactions:delete
10832
11280
  parameters:
10833
11281
  - in: path
10834
11282
  name: id
@@ -10902,6 +11350,10 @@ paths:
10902
11350
  be included in the `children` property of the transaction returned in
10903
11351
  the response
10904
11352
  operationId: groupTransactions
11353
+ security:
11354
+ - bearerSecurity: []
11355
+ - oauth2Security:
11356
+ - transactions:update
10905
11357
  requestBody:
10906
11358
  required: true
10907
11359
  content:
@@ -11194,6 +11646,10 @@ paths:
11194
11646
  The transactions within the group are not removed and will subsequently
11195
11647
  be treated as "normal" ungrouped transactions.
11196
11648
  operationId: ungroupTransactions
11649
+ security:
11650
+ - bearerSecurity: []
11651
+ - oauth2Security:
11652
+ - transactions:update
11197
11653
  parameters:
11198
11654
  - in: path
11199
11655
  name: id
@@ -11247,6 +11703,10 @@ paths:
11247
11703
  split, use the `GET /transactions/{id}` endpoint and pass the value of
11248
11704
  the `split_parent_id` of one of the children.
11249
11705
  operationId: splitTransaction
11706
+ security:
11707
+ - bearerSecurity: []
11708
+ - oauth2Security:
11709
+ - transactions:update
11250
11710
  parameters:
11251
11711
  - name: id
11252
11712
  in: path
@@ -11448,6 +11908,10 @@ paths:
11448
11908
  Use the value of the `split_parent_id`property of a split transaction to
11449
11909
  specify the parent ID.
11450
11910
  operationId: unsplitTransaction
11911
+ security:
11912
+ - bearerSecurity: []
11913
+ - oauth2Security:
11914
+ - transactions:update
11451
11915
  parameters:
11452
11916
  - in: path
11453
11917
  name: id
@@ -11489,6 +11953,10 @@ paths:
11489
11953
  - transactions (files)
11490
11954
  summary: Attach a file to a transaction
11491
11955
  operationId: attachFileToTransaction
11956
+ security:
11957
+ - bearerSecurity: []
11958
+ - oauth2Security:
11959
+ - transaction_attachments:create
11492
11960
  description: |-
11493
11961
  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.
11494
11962
  parameters:
@@ -11576,6 +12044,10 @@ paths:
11576
12044
  description: |-
11577
12045
  Returns a signed url that can be used to download the file attachment.
11578
12046
  operationId: getTransactionAttachmentUrl
12047
+ security:
12048
+ - bearerSecurity: []
12049
+ - oauth2Security:
12050
+ - transaction_attachments:read
11579
12051
  tags:
11580
12052
  - transactions (files)
11581
12053
  parameters:
@@ -11629,6 +12101,10 @@ paths:
11629
12101
  delete:
11630
12102
  summary: Delete a file attachment
11631
12103
  operationId: deleteTransactionAttachment
12104
+ security:
12105
+ - bearerSecurity: []
12106
+ - oauth2Security:
12107
+ - transaction_attachments:delete
11632
12108
  description: >-
11633
12109
  Deletes a file attachment from a transaction.
11634
12110
  tags:
@@ -11674,6 +12150,10 @@ paths:
11674
12150
  description: Retrieve a list of all tags associated with the user's
11675
12151
  account.
11676
12152
  operationId: getAllTags
12153
+ security:
12154
+ - bearerSecurity: []
12155
+ - oauth2Security:
12156
+ - tags:read
11677
12157
  responses:
11678
12158
  "200":
11679
12159
  description: A list of tags
@@ -11744,6 +12224,10 @@ paths:
11744
12224
  summary: Create a new tag
11745
12225
  description: Creates a new tag with the given name
11746
12226
  operationId: createTag
12227
+ security:
12228
+ - bearerSecurity: []
12229
+ - oauth2Security:
12230
+ - tags:create
11747
12231
  requestBody:
11748
12232
  required: true
11749
12233
  content:
@@ -11811,6 +12295,10 @@ paths:
11811
12295
  summary: Get a single tag
11812
12296
  description: Retrieve the details of a specific tag with the specified ID.
11813
12297
  operationId: getTagById
12298
+ security:
12299
+ - bearerSecurity: []
12300
+ - oauth2Security:
12301
+ - tags:read
11814
12302
  parameters:
11815
12303
  - name: id
11816
12304
  in: path
@@ -11890,6 +12378,10 @@ paths:
11890
12378
  properties that is not listed above. For example, a request body that contains only a
11891
12379
  `name` attribute is valid.
11892
12380
  operationId: updateTag
12381
+ security:
12382
+ - bearerSecurity: []
12383
+ - oauth2Security:
12384
+ - tags:update
11893
12385
  parameters:
11894
12386
  - name: id
11895
12387
  in: path
@@ -11993,6 +12485,10 @@ paths:
11993
12485
  returned and the tag is not deleted. This behavior can be overridden by
11994
12486
  setting the `force` parameter to `true`.
11995
12487
  operationId: deleteTag
12488
+ security:
12489
+ - bearerSecurity: []
12490
+ - oauth2Security:
12491
+ - tags:delete
11996
12492
  parameters:
11997
12493
  - in: path
11998
12494
  name: id
@@ -12056,6 +12552,10 @@ paths:
12056
12552
  summary: Get all recurring items
12057
12553
  description: Retrieve recurring items for a specified time frame.
12058
12554
  operationId: getAllRecurring
12555
+ security:
12556
+ - bearerSecurity: []
12557
+ - oauth2Security:
12558
+ - recurring_items:read
12059
12559
  parameters:
12060
12560
  - name: start_date
12061
12561
  in: query
@@ -12199,6 +12699,10 @@ paths:
12199
12699
  description: Retrieve the details of a specific recurring item with the
12200
12700
  specified ID.
12201
12701
  operationId: getRecurringById
12702
+ security:
12703
+ - bearerSecurity: []
12704
+ - oauth2Security:
12705
+ - recurring_items:read
12202
12706
  parameters:
12203
12707
  - name: id
12204
12708
  in: path
@@ -12315,6 +12819,10 @@ paths:
12315
12819
  budget preferences such as currency and locale, see
12316
12820
  [/me/account/settings](#tag/me/GET/me/account/settings).
12317
12821
  operationId: getBudgetSettings
12822
+ security:
12823
+ - bearerSecurity: []
12824
+ - oauth2Security:
12825
+ - budgets:read
12318
12826
  responses:
12319
12827
  "200":
12320
12828
  description: Budget period settings for the current budget
@@ -12343,6 +12851,10 @@ paths:
12343
12851
  Use the [/budgets/settings](#tag/budgets/GET/budgets/settings) endpoint to view the budget period settings for the account.<br>
12344
12852
  To view details for existing budgets, use the [summary](#tag/summary) endpoint.
12345
12853
  operationId: upsertBudget
12854
+ security:
12855
+ - bearerSecurity: []
12856
+ - oauth2Security:
12857
+ - budgets:update
12346
12858
  requestBody:
12347
12859
  required: true
12348
12860
  content:
@@ -12415,6 +12927,10 @@ paths:
12415
12927
  the account's budget settings.<br> To view details for existing budgets,
12416
12928
  use the [summary](#tag/summary) endpoint.
12417
12929
  operationId: deleteBudget
12930
+ security:
12931
+ - bearerSecurity: []
12932
+ - oauth2Security:
12933
+ - budgets:delete
12418
12934
  parameters:
12419
12935
  - in: query
12420
12936
  name: category_id