@lunch-money/developer-docs 2.11.1-preview.8 → 2.11.2-preview.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.
@@ -4,9 +4,9 @@ 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.
7
+ Welcome to the Lunch Money v2 API reference. This is the **v2.11.2** spec.
8
8
 
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).
9
+ The API is available at `https://api.lunchmoney.dev/v2`. Use a personal access token from the [Lunch Money Developers page](https://my.lunchmoney.app/developers) for API exploration or work with your own budgeting account. Applications built for other Lunch Money users should use an [OAuth access token issued after the user authorizes the application](https://lunchmoney.dev/oauth).
10
10
 
11
11
 
12
12
  **Try it from these docs**
@@ -2712,8 +2712,11 @@ components:
2712
2712
  type: array
2713
2713
  nullable: false
2714
2714
  description: A list of objects that describe any attachments to the
2715
- transaction. This is only present when the `include_files` query
2716
- parameter is set to true.
2715
+ transaction. For OAuth clients, this property is available only
2716
+ with the `transaction_attachments:read` scope. Without that scope,
2717
+ an absent `files` property does not mean the transaction has no
2718
+ attachments. See the operation description for its attachment
2719
+ behavior.
2717
2720
  items:
2718
2721
  $ref: "#/components/schemas/transactionAttachmentObject"
2719
2722
  source:
@@ -3008,7 +3011,10 @@ components:
3008
3011
  type: array
3009
3012
  nullable: false
3010
3013
  description: A list of objects that describe any attachments to the
3011
- transaction
3014
+ transaction. OAuth clients also need the
3015
+ `transaction_attachments:read` scope. Without it, this property is
3016
+ omitted rather than returned as an empty array, so an absent
3017
+ `files` property does not mean the transaction has no attachments.
3012
3018
  items:
3013
3019
  $ref: "#/components/schemas/transactionAttachmentObject"
3014
3020
  required:
@@ -5099,9 +5105,58 @@ components:
5099
5105
  bearerSecurity:
5100
5106
  type: http
5101
5107
  description: >-
5102
- Required for the LIVE server. Optional for MOCK.
5108
+ A Lunch Money personal access token. Required for the LIVE server and
5109
+ optional for MOCK.
5103
5110
  scheme: bearer
5104
5111
  bearerFormat: JWT
5112
+ oauth2Security:
5113
+ type: oauth2
5114
+ description: >-
5115
+ An OAuth 2.0 access token issued to a registered Lunch Money app.
5116
+ Each operation lists the scope required to call it.
5117
+ flows:
5118
+ authorizationCode:
5119
+ authorizationUrl: https://api.lunchmoney.dev/oauth/authorize
5120
+ tokenUrl: https://api.lunchmoney.dev/oauth/token
5121
+ scopes:
5122
+ offline_access: "Allow this app to maintain access without asking you to sign in and authorize it again"
5123
+ me:read: "View your Lunch Money identity and account, user, and budget settings"
5124
+ me:update: "Update your Lunch Money account, user, and budget settings"
5125
+ summary:read: "View your budget summary"
5126
+ categories:read: "View categories and category groups"
5127
+ categories:create: "Create categories and category groups"
5128
+ categories:update: "Update categories and category groups"
5129
+ categories:delete: "Delete categories and category groups"
5130
+ crypto_manual:read: "View supported cryptocurrencies and manually managed cryptocurrency balances"
5131
+ crypto_manual:create: "Add supported cryptocurrencies and create manually managed cryptocurrency balances"
5132
+ crypto_manual:update: "Update manually managed cryptocurrency balances"
5133
+ crypto_manual:delete: "Delete manually managed cryptocurrency balances"
5134
+ crypto_synced:read: "View synced cryptocurrency accounts and balances"
5135
+ crypto_synced:update: "Refresh balances for synced cryptocurrency accounts"
5136
+ balance_history:read: "View balance history for accounts and synced cryptocurrency balances"
5137
+ balance_history:update: "Create or update balance history and details for deleted accounts"
5138
+ balance_history:delete: "Delete balance history for accounts and synced cryptocurrency balances"
5139
+ manual_accounts:read: "View manually managed accounts"
5140
+ manual_accounts:create: "Create manually managed accounts"
5141
+ manual_accounts:update: "Update manually managed accounts"
5142
+ manual_accounts:delete: "Delete manually managed accounts"
5143
+ plaid_accounts:read: "View accounts connected through Plaid"
5144
+ plaid_accounts:update: "Request a Plaid account refresh, which may import new transactions"
5145
+ transactions:read: "View transactions, including split and group information"
5146
+ transactions:create: "Create transactions"
5147
+ transactions:update: "Update, split, unsplit, group, and ungroup transactions"
5148
+ transactions:delete: "Delete transactions"
5149
+ transaction_attachments:read: "View transaction attachment metadata and get download access to attachments"
5150
+ transaction_attachments:create: "Attach files to transactions"
5151
+ transaction_attachments:delete: "Delete transaction attachments"
5152
+ tags:read: "View tags"
5153
+ tags:create: "Create tags"
5154
+ tags:update: "Update tags"
5155
+ tags:delete: "Delete tags"
5156
+ recurring_items:read: "View recurring items"
5157
+ budgets:read: "View budget period settings"
5158
+ budgets:update: "Create or update budget amounts"
5159
+ budgets:delete: "Delete budget amounts"
5105
5160
 
5106
5161
  paths:
5107
5162
  /me:
@@ -5120,6 +5175,10 @@ paths:
5120
5175
  Properties such as `primary_currency` and `budget_name` remain on this
5121
5176
  response for backwards compatibility.
5122
5177
  operationId: getMe
5178
+ security:
5179
+ - bearerSecurity: []
5180
+ - oauth2Security:
5181
+ - me:read
5123
5182
  parameters: []
5124
5183
  responses:
5125
5184
  "200":
@@ -5151,6 +5210,10 @@ paths:
5151
5210
  Returns settings for the current budgeting account. These settings apply
5152
5211
  regardless of which user is accessing the account.
5153
5212
  operationId: getAccountSettings
5213
+ security:
5214
+ - bearerSecurity: []
5215
+ - oauth2Security:
5216
+ - me:read
5154
5217
  responses:
5155
5218
  "200":
5156
5219
  description: Account settings for the current budgeting account
@@ -5186,6 +5249,10 @@ paths:
5186
5249
  provide only the properties to update. The request body must include at
5187
5250
  least one property.
5188
5251
  operationId: updateAccountSettings
5252
+ security:
5253
+ - bearerSecurity: []
5254
+ - oauth2Security:
5255
+ - me:update
5189
5256
  requestBody:
5190
5257
  required: true
5191
5258
  content:
@@ -5229,6 +5296,10 @@ paths:
5229
5296
  These settings apply across every budgeting account the user owns or
5230
5297
  collaborates on.
5231
5298
  operationId: getUserSettings
5299
+ security:
5300
+ - bearerSecurity: []
5301
+ - oauth2Security:
5302
+ - me:read
5232
5303
  responses:
5233
5304
  "200":
5234
5305
  description: User settings for the authorized user
@@ -5266,6 +5337,10 @@ paths:
5266
5337
  Amount fields in API responses always use positive values for debits and
5267
5338
  negative values for credits.
5268
5339
  operationId: updateUserSettings
5340
+ security:
5341
+ - bearerSecurity: []
5342
+ - oauth2Security:
5343
+ - me:update
5269
5344
  requestBody:
5270
5345
  required: true
5271
5346
  content:
@@ -5311,6 +5386,10 @@ paths:
5311
5386
  budgeting account. These settings do not affect other users or the
5312
5387
  authorized user's settings in other budgeting accounts.
5313
5388
  operationId: getUserAccountSettings
5389
+ security:
5390
+ - bearerSecurity: []
5391
+ - oauth2Security:
5392
+ - me:read
5314
5393
  responses:
5315
5394
  "200":
5316
5395
  description: Settings for the authorized user in the current budgeting
@@ -5340,6 +5419,10 @@ paths:
5340
5419
  provide only the properties to update. The request body must include at
5341
5420
  least one property.
5342
5421
  operationId: updateUserAccountSettings
5422
+ security:
5423
+ - bearerSecurity: []
5424
+ - oauth2Security:
5425
+ - me:update
5343
5426
  requestBody:
5344
5427
  required: true
5345
5428
  content:
@@ -5394,6 +5477,10 @@ paths:
5394
5477
  budget objects.
5395
5478
 
5396
5479
  operationId: getBudgetSummary
5480
+ security:
5481
+ - bearerSecurity: []
5482
+ - oauth2Security:
5483
+ - summary:read
5397
5484
  parameters:
5398
5485
  - in: query
5399
5486
  name: start_date
@@ -5909,6 +5996,10 @@ paths:
5909
5996
  description: Retrieve a list of all categories associated with the user's
5910
5997
  account.
5911
5998
  operationId: getAllCategories
5999
+ security:
6000
+ - bearerSecurity: []
6001
+ - oauth2Security:
6002
+ - categories:read
5912
6003
  parameters:
5913
6004
  - name: format
5914
6005
  in: query
@@ -6156,6 +6247,10 @@ paths:
6156
6247
  this case, the `children` attribute may be set to an array of category
6157
6248
  IDs to add to the newly created category group.
6158
6249
  operationId: createCategory
6250
+ security:
6251
+ - bearerSecurity: []
6252
+ - oauth2Security:
6253
+ - categories:create
6159
6254
  requestBody:
6160
6255
  required: true
6161
6256
  content:
@@ -6261,6 +6356,10 @@ paths:
6261
6356
  description: Retrieve details of a specific category or category group by
6262
6357
  its ID.
6263
6358
  operationId: getCategoryById
6359
+ security:
6360
+ - bearerSecurity: []
6361
+ - oauth2Security:
6362
+ - categories:read
6264
6363
  parameters:
6265
6364
  - name: id
6266
6365
  in: path
@@ -6399,6 +6498,10 @@ paths:
6399
6498
 
6400
6499
  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>
6401
6500
  operationId: updateCategory
6501
+ security:
6502
+ - bearerSecurity: []
6503
+ - oauth2Security:
6504
+ - categories:update
6402
6505
  parameters:
6403
6506
  - name: id
6404
6507
  in: path
@@ -6551,6 +6654,10 @@ paths:
6551
6654
  recurring items, etc. If there are dependents, this endpoint will return
6552
6655
  an object that describes the number and type of existing dependencies.
6553
6656
  operationId: deleteCategory
6657
+ security:
6658
+ - bearerSecurity: []
6659
+ - oauth2Security:
6660
+ - categories:delete
6554
6661
  parameters:
6555
6662
  - in: path
6556
6663
  name: id
@@ -6634,6 +6741,10 @@ paths:
6634
6741
  Retrieve the list of cryptocurrencies currently supported for manual tracking.<p>
6635
6742
  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.
6636
6743
  operationId: getAllCryptocurrencies
6744
+ security:
6745
+ - bearerSecurity: []
6746
+ - oauth2Security:
6747
+ - crypto_manual:read
6637
6748
  responses:
6638
6749
  "200":
6639
6750
  description: A list of supported cryptocurrencies
@@ -6670,6 +6781,10 @@ paths:
6670
6781
  - crypto-manual
6671
6782
  summary: Add a new supported cryptocurrency
6672
6783
  operationId: createCryptocurrency
6784
+ security:
6785
+ - bearerSecurity: []
6786
+ - oauth2Security:
6787
+ - crypto_manual:create
6673
6788
  description: |-
6674
6789
  Adds a new cryptocurrency to the supported manual-crypto list.<br><br>
6675
6790
  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.
@@ -6754,6 +6869,10 @@ paths:
6754
6869
  description: |-
6755
6870
  Retrieve all manually managed crypto balances associated with the user's account.
6756
6871
  operationId: getAllCryptoManual
6872
+ security:
6873
+ - bearerSecurity: []
6874
+ - oauth2Security:
6875
+ - crypto_manual:read
6757
6876
  responses:
6758
6877
  "200":
6759
6878
  description: A list of manual crypto balances
@@ -6790,6 +6909,10 @@ paths:
6790
6909
  Create a manually managed crypto asset.<br><br>
6791
6910
  If `display_name` is `null`, clients may derive one from `institution_name` + `name`.
6792
6911
  operationId: createCryptoManual
6912
+ security:
6913
+ - bearerSecurity: []
6914
+ - oauth2Security:
6915
+ - crypto_manual:create
6793
6916
  requestBody:
6794
6917
  required: true
6795
6918
  content:
@@ -6876,6 +6999,10 @@ paths:
6876
6999
  description: |-
6877
7000
  Retrieve a single manually managed crypto balance by ID.
6878
7001
  operationId: getCryptoManualById
7002
+ security:
7003
+ - bearerSecurity: []
7004
+ - oauth2Security:
7005
+ - crypto_manual:read
6879
7006
  parameters:
6880
7007
  - name: id
6881
7008
  in: path
@@ -6946,6 +7073,10 @@ paths:
6946
7073
  Modify a manually managed crypto balance.<br><br>
6947
7074
  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.
6948
7075
  operationId: updateCryptoManual
7076
+ security:
7077
+ - bearerSecurity: []
7078
+ - oauth2Security:
7079
+ - crypto_manual:update
6949
7080
  parameters:
6950
7081
  - name: id
6951
7082
  in: path
@@ -7044,6 +7175,10 @@ paths:
7044
7175
  description: |-
7045
7176
  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`.
7046
7177
  operationId: deleteCryptoManual
7178
+ security:
7179
+ - bearerSecurity: []
7180
+ - oauth2Security:
7181
+ - crypto_manual:delete
7047
7182
  parameters:
7048
7183
  - name: id
7049
7184
  in: path
@@ -7110,6 +7245,10 @@ paths:
7110
7245
  description: |-
7111
7246
  Retrieves all synced crypto accounts associated with the user's account.
7112
7247
  operationId: getAllCryptoSynced
7248
+ security:
7249
+ - bearerSecurity: []
7250
+ - oauth2Security:
7251
+ - crypto_synced:read
7113
7252
  responses:
7114
7253
  "200":
7115
7254
  description: A list of synced crypto accounts
@@ -7173,6 +7312,10 @@ paths:
7173
7312
  description: |-
7174
7313
  Retrieves the synced crypto account and all nested balances for the specified synced crypto account ID.
7175
7314
  operationId: getCryptoSyncedById
7315
+ security:
7316
+ - bearerSecurity: []
7317
+ - oauth2Security:
7318
+ - crypto_synced:read
7176
7319
  parameters:
7177
7320
  - name: id
7178
7321
  in: path
@@ -7254,6 +7397,10 @@ paths:
7254
7397
  description: |-
7255
7398
  Retrieves a single balance from the specified synced crypto account using the crypto symbol.
7256
7399
  operationId: getCryptoSyncedBalanceBySymbol
7400
+ security:
7401
+ - bearerSecurity: []
7402
+ - oauth2Security:
7403
+ - crypto_synced:read
7257
7404
  parameters:
7258
7405
  - name: id
7259
7406
  in: path
@@ -7334,6 +7481,10 @@ paths:
7334
7481
  description: |-
7335
7482
  Trigger a balance refresh for the specified synced crypto account. Returns the refreshed synced crypto account.
7336
7483
  operationId: refreshCryptoSynced
7484
+ security:
7485
+ - bearerSecurity: []
7486
+ - oauth2Security:
7487
+ - crypto_synced:update
7337
7488
  parameters:
7338
7489
  - name: id
7339
7490
  in: path
@@ -7414,6 +7565,10 @@ paths:
7414
7565
  &nbsp;&nbsp;&nbsp;&nbsp;- `crypto_manual`: `source.crypto_manual_id` with [GET /crypto/manual/{id}](#tag/crypto-manual/GET/crypto/manual/{id})<br>
7415
7566
  &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})
7416
7567
  operationId: getBalanceHistory
7568
+ security:
7569
+ - bearerSecurity: []
7570
+ - oauth2Security:
7571
+ - balance_history:read
7417
7572
  parameters:
7418
7573
  - name: start_month
7419
7574
  in: query
@@ -7669,6 +7824,10 @@ paths:
7669
7824
  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
7825
  `start_month`, `end_month`, and current-month entries behave as described in [GET /balance_history](#tag/balance-history/GET/balance_history).
7671
7826
  operationId: getBalanceHistoryForAccount
7827
+ security:
7828
+ - bearerSecurity: []
7829
+ - oauth2Security:
7830
+ - balance_history:read
7672
7831
  parameters:
7673
7832
  - name: account_type
7674
7833
  in: path
@@ -7805,6 +7964,10 @@ paths:
7805
7964
  `crypto_balance` may be provided for `crypto_manual` and `deleted` accounts. It is invalid for `manual` or `plaid` accounts.<br><br>
7806
7965
  The response contains only the `type: historical` balance entries that were submitted in this request.
7807
7966
  operationId: upsertBalanceHistoryForAccount
7967
+ security:
7968
+ - bearerSecurity: []
7969
+ - oauth2Security:
7970
+ - balance_history:update
7808
7971
  parameters:
7809
7972
  - name: account_type
7810
7973
  in: path
@@ -8001,6 +8164,10 @@ paths:
8001
8164
  description: |-
8002
8165
  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}).
8003
8166
  operationId: deleteBalanceHistoryForAccount
8167
+ security:
8168
+ - bearerSecurity: []
8169
+ - oauth2Security:
8170
+ - balance_history:delete
8004
8171
  parameters:
8005
8172
  - name: account_type
8006
8173
  in: path
@@ -8047,6 +8214,10 @@ paths:
8047
8214
  The path selects one balance stream with a synced crypto account id and `symbol`.<br><br>
8048
8215
  `start_month`, `end_month`, and current-month entries behave as described in [GET /balance_history](#tag/balance-history/GET/balance_history).
8049
8216
  operationId: getBalanceHistoryForCryptoSynced
8217
+ security:
8218
+ - bearerSecurity: []
8219
+ - oauth2Security:
8220
+ - balance_history:read
8050
8221
  parameters:
8051
8222
  - name: account_id
8052
8223
  in: path
@@ -8155,6 +8326,10 @@ paths:
8155
8326
  `crypto_balance` may be provided for synced crypto balances.<br><br>
8156
8327
  The response contains only the `type: historical` balance entries that were submitted in this request.
8157
8328
  operationId: upsertBalanceHistoryForCryptoSynced
8329
+ security:
8330
+ - bearerSecurity: []
8331
+ - oauth2Security:
8332
+ - balance_history:update
8158
8333
  parameters:
8159
8334
  - name: account_id
8160
8335
  in: path
@@ -8299,6 +8474,10 @@ paths:
8299
8474
  Delete all historical balance entries for a single synced crypto symbol stream.<br><br>
8300
8475
  The path identifies both the synced crypto account and the symbol whose history should be deleted.
8301
8476
  operationId: deleteBalanceHistoryForCryptoSynced
8477
+ security:
8478
+ - bearerSecurity: []
8479
+ - oauth2Security:
8480
+ - balance_history:delete
8302
8481
  parameters:
8303
8482
  - name: account_id
8304
8483
  in: path
@@ -8342,6 +8521,10 @@ paths:
8342
8521
  description: |-
8343
8522
  Delete a single stored (`type: historical`) monthly balance history entry by its id. Ephemeral `current` entries cannot be deleted this way.
8344
8523
  operationId: deleteBalanceHistoryEntry
8524
+ security:
8525
+ - bearerSecurity: []
8526
+ - oauth2Security:
8527
+ - balance_history:delete
8345
8528
  parameters:
8346
8529
  - name: id
8347
8530
  in: path
@@ -8388,6 +8571,10 @@ paths:
8388
8571
  Update archived metadata for a deleted balance history source.<br><br>
8389
8572
  Pass the `deleted_account_id` from a `source.type: deleted` entry. The update applies to all historical entries associated with that deleted source.
8390
8573
  operationId: updateBalanceHistoryDetails
8574
+ security:
8575
+ - bearerSecurity: []
8576
+ - oauth2Security:
8577
+ - balance_history:update
8391
8578
  parameters:
8392
8579
  - name: account_id
8393
8580
  in: path
@@ -8459,6 +8646,10 @@ paths:
8459
8646
  description: Retrieve a list of all manually-managed accounts associated
8460
8647
  with the user's account.
8461
8648
  operationId: getAllManualAccounts
8649
+ security:
8650
+ - bearerSecurity: []
8651
+ - oauth2Security:
8652
+ - manual_accounts:read
8462
8653
  responses:
8463
8654
  "200":
8464
8655
  description: A list of manual accounts
@@ -8534,6 +8725,10 @@ paths:
8534
8725
  summary: Create a manual account
8535
8726
  description: Create a new manually-managed account.
8536
8727
  operationId: createManualAccount
8728
+ security:
8729
+ - bearerSecurity: []
8730
+ - oauth2Security:
8731
+ - manual_accounts:create
8537
8732
  requestBody:
8538
8733
  required: true
8539
8734
  content:
@@ -8668,6 +8863,10 @@ paths:
8668
8863
  description: Retrieve the details of the manual account with the specified
8669
8864
  ID.
8670
8865
  operationId: getManualAccountById
8866
+ security:
8867
+ - bearerSecurity: []
8868
+ - oauth2Security:
8869
+ - manual_accounts:read
8671
8870
  parameters:
8672
8871
  - name: id
8673
8872
  in: path
@@ -8752,6 +8951,10 @@ paths:
8752
8951
  properties that is not listed above. For example a request body that contains only a `name` property is valid.<br><br>
8753
8952
 
8754
8953
  operationId: updateManualAccount
8954
+ security:
8955
+ - bearerSecurity: []
8956
+ - oauth2Security:
8957
+ - manual_accounts:update
8755
8958
  parameters:
8756
8959
  - name: id
8757
8960
  in: path
@@ -8895,6 +9098,10 @@ paths:
8895
9098
  property set to this account's ID they will appear with a warning when
8896
9099
  displayed in the web view.
8897
9100
  operationId: deleteManualAccount
9101
+ security:
9102
+ - bearerSecurity: []
9103
+ - oauth2Security:
9104
+ - manual_accounts:delete
8898
9105
  parameters:
8899
9106
  - in: path
8900
9107
  name: id
@@ -8954,6 +9161,10 @@ paths:
8954
9161
  description: Retrieve a list of all synced accounts associated with the
8955
9162
  user's account.
8956
9163
  operationId: getAllPlaidAccounts
9164
+ security:
9165
+ - bearerSecurity: []
9166
+ - oauth2Security:
9167
+ - plaid_accounts:read
8957
9168
  responses:
8958
9169
  "200":
8959
9170
  description: A list of accounts synced via Plaid
@@ -9060,6 +9271,10 @@ paths:
9060
9271
  description: Retrieve the details of the plaid account with the specified
9061
9272
  ID.
9062
9273
  operationId: getPlaidAccountById
9274
+ security:
9275
+ - bearerSecurity: []
9276
+ - oauth2Security:
9277
+ - plaid_accounts:read
9063
9278
  parameters:
9064
9279
  - name: id
9065
9280
  in: path
@@ -9157,6 +9372,10 @@ paths:
9157
9372
  contacts the associated financial institution. The `last_import` field
9158
9373
  is updated only when new transactions have been imported.
9159
9374
  operationId: triggerPlaidAccountFetch
9375
+ security:
9376
+ - bearerSecurity: []
9377
+ - oauth2Security:
9378
+ - plaid_accounts:update
9160
9379
  parameters:
9161
9380
  - name: start_date
9162
9381
  in: query
@@ -9242,6 +9461,10 @@ paths:
9242
9461
  account. <br>If called with no parameters, this endpoint will return the
9243
9462
  most recent transactions, up to the specified `limit`.
9244
9463
  operationId: getAllTransactions
9464
+ security:
9465
+ - bearerSecurity: []
9466
+ - oauth2Security:
9467
+ - transactions:read
9245
9468
  parameters:
9246
9469
  - name: start_date
9247
9470
  in: query
@@ -9450,6 +9673,9 @@ paths:
9450
9673
  description: By default, the `files` property is not included in the
9451
9674
  response. Set to true if you'd like the responses to include a list
9452
9675
  of objects that describe any files attached to the transactions.
9676
+ OAuth clients must have both `transactions:read` and
9677
+ `transaction_attachments:read`; otherwise the request returns a
9678
+ `403` `insufficient_scope` error.
9453
9679
  - name: limit
9454
9680
  in: query
9455
9681
  schema:
@@ -9733,8 +9959,15 @@ paths:
9733
9959
  successfully inserted.<br>
9734
9960
  - `skipped_duplicates`: A list of
9735
9961
  transactions that were duplicates of existing transactions and were not
9736
- inserted.
9962
+ inserted.<p>
9963
+
9964
+ For OAuth clients, returned transactions include the `files` property
9965
+ only when the client has the `transaction_attachments:read` scope.
9737
9966
  operationId: createNewTransactions
9967
+ security:
9968
+ - bearerSecurity: []
9969
+ - oauth2Security:
9970
+ - transactions:create
9738
9971
  requestBody:
9739
9972
  required: true
9740
9973
  content:
@@ -10173,8 +10406,15 @@ paths:
10173
10406
 
10174
10407
  Each transaction in the array **must** include an `id` property to identify which transaction to update, along with at least one other property to be updated. For example, a transaction object that contains only an `id` and `category_id` property is valid.<br><br>
10175
10408
 
10176
- The request can include between 1 and 500 transactions to update in a single call.
10409
+ The request can include between 1 and 500 transactions to update in a single call.<br><br>
10410
+
10411
+ For OAuth clients, returned transactions include the `files` property
10412
+ only when the client has the `transaction_attachments:read` scope.
10177
10413
  operationId: updateTransactions
10414
+ security:
10415
+ - bearerSecurity: []
10416
+ - oauth2Security:
10417
+ - transactions:update
10178
10418
  requestBody:
10179
10419
  required: true
10180
10420
  content:
@@ -10543,6 +10783,10 @@ paths:
10543
10783
 
10544
10784
  <span class="red-text"><strong>Use with caution. This action is not reversible!</strong></span>
10545
10785
  operationId: deleteTransactions
10786
+ security:
10787
+ - bearerSecurity: []
10788
+ - oauth2Security:
10789
+ - transactions:delete
10546
10790
  requestBody:
10547
10791
  required: true
10548
10792
  content:
@@ -10648,7 +10892,8 @@ paths:
10648
10892
  added to transactions that were inserted or updated via the API.
10649
10893
 
10650
10894
  - `files` will be a list of objects that describe any attachments to the
10651
- transaction.
10895
+ transaction. For OAuth clients, this property is included only when the
10896
+ client has the `transaction_attachments:read` scope.
10652
10897
 
10653
10898
 
10654
10899
  If `is_group_parent` is true in the returned transaction, the object will also
@@ -10659,6 +10904,10 @@ paths:
10659
10904
  include the `children` property which will contain a list
10660
10905
  of the split transactions.
10661
10906
  operationId: getTransactionById
10907
+ security:
10908
+ - bearerSecurity: []
10909
+ - oauth2Security:
10910
+ - transactions:read
10662
10911
  parameters:
10663
10912
  - name: id
10664
10913
  in: path
@@ -10899,9 +11148,17 @@ paths:
10899
11148
  It is also possible to provide only the properties to be updated in the
10900
11149
  request body, as long as the request includes at least one of the
10901
11150
  properties that is not listed above. For example a request body that contains only
10902
- an `category_id` attribute is valid.
11151
+ an `category_id` attribute is valid.<br><br>
11152
+
11153
+ For OAuth clients, the returned transaction includes the `files`
11154
+ property only when the client has the
11155
+ `transaction_attachments:read` scope.
10903
11156
 
10904
11157
  operationId: updateTransaction
11158
+ security:
11159
+ - bearerSecurity: []
11160
+ - oauth2Security:
11161
+ - transactions:update
10905
11162
  parameters:
10906
11163
  - name: id
10907
11164
  in: path
@@ -11036,6 +11293,10 @@ paths:
11036
11293
 
11037
11294
  <span class="red-text"><strong>Use with caution. This action is not reversible!</strong></span>
11038
11295
  operationId: deleteTransactionById
11296
+ security:
11297
+ - bearerSecurity: []
11298
+ - oauth2Security:
11299
+ - transactions:delete
11039
11300
  parameters:
11040
11301
  - in: path
11041
11302
  name: id
@@ -11107,8 +11368,16 @@ paths:
11107
11368
  transaction. The grouped transactions will
11108
11369
 
11109
11370
  be included in the `children` property of the transaction returned in
11110
- the response
11371
+ the response.<br><br>
11372
+
11373
+ For OAuth clients, the returned group and its children include the
11374
+ `files` property only when the client has the
11375
+ `transaction_attachments:read` scope.
11111
11376
  operationId: groupTransactions
11377
+ security:
11378
+ - bearerSecurity: []
11379
+ - oauth2Security:
11380
+ - transactions:update
11112
11381
  requestBody:
11113
11382
  required: true
11114
11383
  content:
@@ -11401,6 +11670,10 @@ paths:
11401
11670
  The transactions within the group are not removed and will subsequently
11402
11671
  be treated as "normal" ungrouped transactions.
11403
11672
  operationId: ungroupTransactions
11673
+ security:
11674
+ - bearerSecurity: []
11675
+ - oauth2Security:
11676
+ - transactions:update
11404
11677
  parameters:
11405
11678
  - in: path
11406
11679
  name: id
@@ -11452,8 +11725,16 @@ paths:
11452
11725
 
11453
11726
  To see the details of the original parent transaction after it has been
11454
11727
  split, use the `GET /transactions/{id}` endpoint and pass the value of
11455
- the `split_parent_id` of one of the children.
11728
+ the `split_parent_id` of one of the children.<br><br>
11729
+
11730
+ For OAuth clients, the returned parent and its children include the
11731
+ `files` property only when the client has the
11732
+ `transaction_attachments:read` scope.
11456
11733
  operationId: splitTransaction
11734
+ security:
11735
+ - bearerSecurity: []
11736
+ - oauth2Security:
11737
+ - transactions:update
11457
11738
  parameters:
11458
11739
  - name: id
11459
11740
  in: path
@@ -11655,6 +11936,10 @@ paths:
11655
11936
  Use the value of the `split_parent_id`property of a split transaction to
11656
11937
  specify the parent ID.
11657
11938
  operationId: unsplitTransaction
11939
+ security:
11940
+ - bearerSecurity: []
11941
+ - oauth2Security:
11942
+ - transactions:update
11658
11943
  parameters:
11659
11944
  - in: path
11660
11945
  name: id
@@ -11696,6 +11981,10 @@ paths:
11696
11981
  - transactions (files)
11697
11982
  summary: Attach a file to a transaction
11698
11983
  operationId: attachFileToTransaction
11984
+ security:
11985
+ - bearerSecurity: []
11986
+ - oauth2Security:
11987
+ - transaction_attachments:create
11699
11988
  description: |-
11700
11989
  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.
11701
11990
  parameters:
@@ -11783,6 +12072,10 @@ paths:
11783
12072
  description: |-
11784
12073
  Returns a signed url that can be used to download the file attachment.
11785
12074
  operationId: getTransactionAttachmentUrl
12075
+ security:
12076
+ - bearerSecurity: []
12077
+ - oauth2Security:
12078
+ - transaction_attachments:read
11786
12079
  tags:
11787
12080
  - transactions (files)
11788
12081
  parameters:
@@ -11836,6 +12129,10 @@ paths:
11836
12129
  delete:
11837
12130
  summary: Delete a file attachment
11838
12131
  operationId: deleteTransactionAttachment
12132
+ security:
12133
+ - bearerSecurity: []
12134
+ - oauth2Security:
12135
+ - transaction_attachments:delete
11839
12136
  description: >-
11840
12137
  Deletes a file attachment from a transaction.
11841
12138
  tags:
@@ -11881,6 +12178,10 @@ paths:
11881
12178
  description: Retrieve a list of all tags associated with the user's
11882
12179
  account.
11883
12180
  operationId: getAllTags
12181
+ security:
12182
+ - bearerSecurity: []
12183
+ - oauth2Security:
12184
+ - tags:read
11884
12185
  responses:
11885
12186
  "200":
11886
12187
  description: A list of tags
@@ -11951,6 +12252,10 @@ paths:
11951
12252
  summary: Create a new tag
11952
12253
  description: Creates a new tag with the given name
11953
12254
  operationId: createTag
12255
+ security:
12256
+ - bearerSecurity: []
12257
+ - oauth2Security:
12258
+ - tags:create
11954
12259
  requestBody:
11955
12260
  required: true
11956
12261
  content:
@@ -12018,6 +12323,10 @@ paths:
12018
12323
  summary: Get a single tag
12019
12324
  description: Retrieve the details of a specific tag with the specified ID.
12020
12325
  operationId: getTagById
12326
+ security:
12327
+ - bearerSecurity: []
12328
+ - oauth2Security:
12329
+ - tags:read
12021
12330
  parameters:
12022
12331
  - name: id
12023
12332
  in: path
@@ -12097,6 +12406,10 @@ paths:
12097
12406
  properties that is not listed above. For example, a request body that contains only a
12098
12407
  `name` attribute is valid.
12099
12408
  operationId: updateTag
12409
+ security:
12410
+ - bearerSecurity: []
12411
+ - oauth2Security:
12412
+ - tags:update
12100
12413
  parameters:
12101
12414
  - name: id
12102
12415
  in: path
@@ -12200,6 +12513,10 @@ paths:
12200
12513
  returned and the tag is not deleted. This behavior can be overridden by
12201
12514
  setting the `force` parameter to `true`.
12202
12515
  operationId: deleteTag
12516
+ security:
12517
+ - bearerSecurity: []
12518
+ - oauth2Security:
12519
+ - tags:delete
12203
12520
  parameters:
12204
12521
  - in: path
12205
12522
  name: id
@@ -12263,6 +12580,10 @@ paths:
12263
12580
  summary: Get all recurring items
12264
12581
  description: Retrieve recurring items for a specified time frame.
12265
12582
  operationId: getAllRecurring
12583
+ security:
12584
+ - bearerSecurity: []
12585
+ - oauth2Security:
12586
+ - recurring_items:read
12266
12587
  parameters:
12267
12588
  - name: start_date
12268
12589
  in: query
@@ -12406,6 +12727,10 @@ paths:
12406
12727
  description: Retrieve the details of a specific recurring item with the
12407
12728
  specified ID.
12408
12729
  operationId: getRecurringById
12730
+ security:
12731
+ - bearerSecurity: []
12732
+ - oauth2Security:
12733
+ - recurring_items:read
12409
12734
  parameters:
12410
12735
  - name: id
12411
12736
  in: path
@@ -12522,6 +12847,10 @@ paths:
12522
12847
  budget preferences such as currency and locale, see
12523
12848
  [/me/account/settings](#tag/me/GET/me/account/settings).
12524
12849
  operationId: getBudgetSettings
12850
+ security:
12851
+ - bearerSecurity: []
12852
+ - oauth2Security:
12853
+ - budgets:read
12525
12854
  responses:
12526
12855
  "200":
12527
12856
  description: Budget period settings for the current budget
@@ -12550,6 +12879,10 @@ paths:
12550
12879
  Use the [/budgets/settings](#tag/budgets/GET/budgets/settings) endpoint to view the budget period settings for the account.<br>
12551
12880
  To view details for existing budgets, use the [summary](#tag/summary) endpoint.
12552
12881
  operationId: upsertBudget
12882
+ security:
12883
+ - bearerSecurity: []
12884
+ - oauth2Security:
12885
+ - budgets:update
12553
12886
  requestBody:
12554
12887
  required: true
12555
12888
  content:
@@ -12622,6 +12955,10 @@ paths:
12622
12955
  the account's budget settings.<br> To view details for existing budgets,
12623
12956
  use the [summary](#tag/summary) endpoint.
12624
12957
  operationId: deleteBudget
12958
+ security:
12959
+ - bearerSecurity: []
12960
+ - oauth2Security:
12961
+ - budgets:delete
12625
12962
  parameters:
12626
12963
  - in: query
12627
12964
  name: category_id