@lunch-money/developer-docs 2.11.0-preview.10

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.
@@ -0,0 +1,381 @@
1
+ # Version History
2
+
3
+ The Lunch Money API spec uses a modified version of SEMVER for its versioning methodology as follows.
4
+ - The major version is the API version. This will always be 2 for the v2 version of the API.
5
+ - The minor version represents the number of main endpoints the current version of the spec supports. For example, a version of the API that supports the /me, /categories, and /transactions endpoints would have a minor version of 3.
6
+ - The revision number represents the number of updates since the last endpoint was added. For example, each time changes are made to one of the existing three APIs as described above, the revision number will be bumped.
7
+
8
+ ## v2.11.0 - TBD
9
+ - Add `GET /balance_history`
10
+ - Add `GET /balance_history/{account_type}/{account_id}`
11
+ - Add `GET /balance_history/crypto_synced/{account_id}/{symbol}`
12
+ - Add `PUT /balance_history/{account_type}/{account_id}`
13
+ - Add `PUT /balance_history/crypto_synced/{account_id}/{symbol}`
14
+ - Add `DELETE /balance_history/entries/{id}`
15
+ - Add `DELETE /balance_history/{account_type}/{account_id}`
16
+ - Add `DELETE /balance_history/crypto_synced/{account_id}/{symbol}`
17
+ - Add `PUT /balance_history/deleted/{account_id}/details`
18
+ - Remove `rollover_pool` from the category object returned in the summary response. It is in the main summary response.
19
+ - It is now possible to set an external_id on any transaction, including those that belong to a Plaid account.
20
+
21
+ ## v2.10.0 - TBD
22
+ - Add v2 crypto endpoints which support:
23
+ - Discovering the currently supported currencies for manually managed crypto assets
24
+ - Managing the complete lifecycle of manually managed crypto assets (create, read, update, delete)
25
+ - Viewing the balances for currencies associated with both manually managed crypto assets and those that are synced via a synced crypto account (ie: coinbase, kraken, ethereum wallet)
26
+ - Refreshing synced crypto account balances
27
+
28
+ ## v2.9.4 - May 23, 2026
29
+ - Increase allowable length for transaction `notes`.
30
+ - Add `clf`, `eth`, and `ves` to the supported currency codes.
31
+
32
+ ## v2.9.3 - Apr 27, 2026
33
+ - Add `xag` and `xau` to the supported currency codes.
34
+
35
+ ## v2.9.2 - Apr 22, 2026
36
+ - Increase allowable length for a transaction `payee`.
37
+
38
+ ## v2.9.1 - Apr 22, 2026
39
+ - You may now set `archived_at` when modifying a category or tag via the `PUT /categories` or `PUT /tags` endpoints.
40
+
41
+ ## v2.9.0 - Feb 26, 2026
42
+ - Add initial `/budgets` endpoint support:
43
+ - `GET /budgets/settings` for account budget settings
44
+ - `PUT /budgets` to create or update budget amounts
45
+ - `DELETE /budgets` to remove budget amounts
46
+ - Updates the GET `/summary` endpoint to return an `occurrences` array for both aligned and non-aligned summary responses when `include_occurrences=true`.
47
+ - It can be useful to inspect the `start_date` and `end_date` of occurrences in a non-aligned response for use in subsequent requests to get an aligned response, which will include complete budget information.
48
+ - Add support for setting `tag_ids` on child transactions in `POST /transactions/split/{id}`.
49
+
50
+ ## v2.8.5 - Feb 2, 2026
51
+ - Add `plaid_item_id` and `linked_by_name` properties to the Plaid Account Object
52
+ - Expand Plaid Account Object `status` enum to include `closed`, `revoked`, and `deactivated`
53
+ - Restore the v1 `original_name` property to the v2 Transaction Object
54
+ - The `collapsed` property on the childCategoryObject is no longer nullable and is always set to `false`.
55
+ - Add `status` and `created_by_name` properties to the Manual Account Object
56
+ - **BREAKING CHANGE**
57
+ - It was possible to 'close' a manual account simply by setting the `closed_on` property in a PUT or POST request. Now `status` must also be set to `closed`.
58
+
59
+ ## v2.8.4 - Jan 16, 2026
60
+ - Add new `created_since` and `updated_since` query parameters to the GET /transactions endpoint.
61
+ - Add a new `include_group_children` query parameter to the GET /transactions endpoint.
62
+ - Add new `include_rollover_pool` and `include_past_budget_dates` query params to the GET /summary endpoint.
63
+ - Add `to_base` to the allowed properties in the updateManualAccountObject. This is tolerated but ignored (matches behavior in updateTransactionObject)
64
+ - New `x-updatable` attributes have been added to the properties of the update objects to more clearly describe which system defined properties are tolerated but ignored.
65
+ - **BREAKING CHANGES**
66
+ - Renamed several properties in the transaction object:
67
+ - `is_parent` -> `is_split_parent`
68
+ - `parent_id` -> `split_parent_id`
69
+ - `is_group` -> `is_group_parent`
70
+ - `group_id` -> `group_parent_id`
71
+ - Renamed a query parameter on the GET /transactions endpoint
72
+ - `is_group` -> `is_group_parent`
73
+ - Renamed a property in the occurrences object returned by the GET /summary endpoint
74
+ - `current` -> `in_range`
75
+
76
+ ## v2.8.3 - Dec 23, 2025
77
+ - The default for the GET /transactions query parameter `limit` has been changed from 100 to 1000. The max for this parameter is now 2000.
78
+ - Added new guides covering pagination and supported currencies.
79
+
80
+ ## v2.8.2 - Nov 26, 2025
81
+ - The category object now includes both an `order` and `collapsed` property. These properties are used by GUIs that display a list of categories.
82
+ - The DELETE /manual_accounts endpoint now supports two optional query parameters:
83
+ - `delete_items` (boolean, default: false): When set to true, also deletes transactions, rules, and recurring items associated with the account
84
+ - `delete_balance_history` (boolean, default: false): When set to true, deletes balance history associated with the account
85
+
86
+ ## v2.8.1 - Nov 14, 2025
87
+ - Removed `debits_as_negative` from the userObject
88
+ - For api users, positive values always indicate a debit transaction, and negative values indicate a credit transaction.
89
+ - Added `background_color` and `text_color` to the tagObject
90
+ - Added `to_base` to the `recurring_item.transaction_criteria` object
91
+ - POST /transactions/{transaction_id}/attachments now returns 201 Created instead of 200 OK
92
+ - Updated example responses to align with the current implementation
93
+ - Error response formats, metadata field names, and error messages have been standardized across all endpoints
94
+
95
+
96
+ ## v2.8.0
97
+ - A new v2/summary endpoint has been added. This replaces the v1/budgets endpoint, which no longer works with the new budgeting feature.
98
+ - The 'pending' value for `status` in the transactions object has been deprecated. This was redundant with the `is_pending` boolean property.
99
+ - A new `is_pending` query parameter has been added to the GET /transactions endpoint.
100
+ - POST /transactions/split/{id} and POST /transactions/group now return a single transaction with children and not an array of transactions.
101
+ - A `custom_metadata` property has been added to the Manual Account object.
102
+ - The maximum length of the Manual Account's `subtype` property has increased from 75 to 100 characters.
103
+ - An empty `description` string may now be passed in the request body for the POST and PUT /categories endpoint
104
+
105
+ ## v2.7.11
106
+ - Added new endpoints for managing transaction file attachments:
107
+ - POST /transactions/{transaction_id}/attachments - Upload a file to be attached to a transaction
108
+ - GET /transactions/attachments/{file_id} - Get a signed URL to download the file attachment
109
+ - DELETE /transactions/attachments/{file_id} - Remove a file attachment from a transaction
110
+ - Added support for file attachments in transaction objects:
111
+ - The `files` property is now included in transaction objects when `include_files` is set to true
112
+ - The `files` property contains an array of `transactionAttachmentObject` objects
113
+ - File metadata (type and name) is properly returned when downloading files
114
+ - The v2 /recurring endpoint has been renamed back to /recurring_items.
115
+ - The `overrides` property has been removed from the transaction object. This ws meant to provide the original info that was overridden by a recurring rule, but turned out to be un-implementable.
116
+ - The bulk PUT /transactions API has been completely redesigned. It now is similar to the POST /transactions API, taking an array of transactions which must include an id along with any other properties to do be updated.
117
+ - The payee/date/amount transaction duplication logic that is triggered by the `skip_duplicates` request body property on a POST /transactions request will now be applied to plaid accounts as well as manual accounts.
118
+ - Improved readability of Request validation errors. The example responses in the spec and those returned by the mock server have been updated to match those that will be returned by the actual implementation of the v2 API.
119
+ - The v2 proxy using v1 service has been removed from the spec.
120
+
121
+
122
+
123
+ ## v2.7.10
124
+ - Add a transactionAttachments type that captures details about files attached to a transaction.
125
+ - Modified the behavior of the GET /transactions endpoint:
126
+ - For performance reasons, transactions returned by this endpoint will, by default, not include `plaid_metadata`, `custom_metadata`, `children`, or `files` properties. These properties ARE provided by default in the GET /transactions/:id endpoint.
127
+ - A new `include_children` query parameter has been added. If set to `true`, transaction groups will include a `children` property with an array of transactions that make up the group.
128
+ - A new `include_metadata` query parameter has been added. If set to `true`, transactions returned will include the properties `plaid_metadata` and `custom_metadata`, which will be `null` when metadata is not associated with the transaction.
129
+ - An `include_files` query parameter is added. When set to `true`, a `files` property is returned with an array of objects that describe any attachments to the transaction.
130
+ - For completeness, an `include_split_parents` query parameter is added. Will override default behavior and return transactions that were split when set. The split transactions are also returned. When used in conjunction with the `include_children` parameter, split parents will have a `children` property that also includes the split transactions.
131
+ - Documented that `include_pending` query param is ignored if `status` query param is also set.
132
+ - Modified the behavior of the GET /transactions/:id endpoint:
133
+ - A successful response will always include all available transaction details, including `plaid_metadata`, `custom_metadata`, and `files` properties.
134
+ - When `is_group` or `is_parent` is true in the response, it will also include a `children` property.
135
+ - Modified the response body returned from a successful POST /transactions request:
136
+ - A `skipped_duplicates` array property will always be returned along with the `transactions` array.
137
+ - This will include details on any requested transactions that were not inserted due to duplicate detection.
138
+ - Duplicates will always be flagged if the `manual_account_id` and `external_id` of a requested transaction match existing transactions.
139
+ - Duplicates may also be flagged if the `skip_duplicates` request body property was set to `true`, and the requested transaction has the same `manual_account_id`, `payee`, `date`, and `amount` of an existing transaction.
140
+ - The insertTransactionResponseObject is now included in the models section of the documentation.
141
+ - Updated the examples for the PUT /transactions (bulk) endpoint
142
+ - Increased the max length of the `subtype` string that can be set on a manual account object to 75 characters
143
+
144
+ ## v2.7.9
145
+ - Updated several type definitions in the spec to use the type `integer` instead of `number` for properties such as ids, orders, and indexes which are always an integer. Amounts, balances and limits still use type `number`.
146
+
147
+ ## v2.7.8
148
+ - The request body for a PUT /tags request will now accept, and ignore, system set tag object properties such as `id` and `created_at`.
149
+ - Response codes for the POST /plaid_accounts/fetch endpoint have changed:
150
+ - A successful fetch request will return a 202 ACCEPTED status with no response body.
151
+ - A fetch request made within one minute of a previous fetch request will return a 425 TOO EARLY response.
152
+ - Setting the query param `category_id` to 0 on a GET /transactions request will now return un-categorized transactions.
153
+ - The `to_base` property of the `transaction_criteria` object in the recurringObject returned by the `GET /recurring` API has been removed. This property as this is not used to match transactions to a recurring item.
154
+
155
+ ## v2.7.7
156
+ - The ability to set the `order` property of a category via the API has been removed.
157
+ - Setting `order` in the body of a POST /categories request will result in a validation error.
158
+ - The value of `order` in the body of PUT /categories request is treated as a "system defined" property and is ignored.
159
+ - This release makes some non-functional changes to the spec to make it behave better with programmatic consumers (ie: type and sdk generators).
160
+ - The transactionObject's `children` array now has a defined `items` type.
161
+ - There is no default value for the `children` property in the request body schema for a POST or PUT /categories request. If this property is not explicitly set it is treated as if it does not exist.
162
+ - The GET /categories optional `is_group` query parameter is now defined a boolean instead of an enum of true and false
163
+ - The Models section of the documentation has been slightly changed as follows
164
+ - We are now consistently showing only the primary Object for each endpoint. Schemas for request bodies are not shown in this section but remain in the individual endpoint's documentation.
165
+ - Renamed the `AccountTypeEnum` to `accountTypeEnum` to maintain consistency in schema naming style
166
+
167
+ ## v2.7.6
168
+ - This release adds the `to_base` property to the Manual and Plaid Account objects to align with a recent change in the v1 API.
169
+
170
+ ## v2.7.5
171
+ - This release adds the following new transactions endpoints:
172
+ - PUT /transactions/:id
173
+ - This works similarly to the same endpoint in v1.
174
+ - PUT /transactions
175
+ - This new endpoint enables updating multiple existing transactions with a common update object.
176
+ - This release modifies the following endpoint behavior
177
+ - POST/PUT /categories
178
+ - It is now permissible to specify the ids of categories that belong to another category group in the `children` property of a request. The categories will be moved to the group being created or updated without error.
179
+ - It is also now permissible to include strings in the `children` property. These will be used as the names of new child categories that will be created.
180
+ - This release also updates the following schemas:
181
+ - Correctly specifies that all properties of the manualAccountObject are required
182
+ - Updates the updateManualAccountObject and updatePlaidManualAccountObject to allow the `balance` property to be either a string or a number.
183
+ - Updates the userObject to include the `debits_as_negative` property. The documentation for Transaction Objects returned by GET requests have been updated to reflect how/if this setting affects the `amount` property of the transaction.
184
+ - Updates the childCategoryObject to restore the `exclude_from_budget`, `exclude_from_totals` and `is_income` properties. These properties are inherited from the Category Group and not settable but are provided for convenience.
185
+
186
+ ## v2.7.4
187
+ - This release adds the following new transactions endpoints:
188
+ - POST /transactions/group/
189
+ - This works similarly to the same endpoint in v1. Use this endpoint to group a set of transactions into a single transaction.
190
+ - DELETE /transactions/group/{id}
191
+ - This endpoint replaces the v1 /transactions/ungroup endpoint.
192
+ - Use this endpoint to delete a transaction group and restore, the grouped transactions to their "normal" transaction state.
193
+ - DELETE /transactions/split
194
+ - This endpoint replaces the v1 /transactions/unsplit endpoint and the v2 version that was introduced in the previous release.
195
+ - Use this endpoint to delete the split transaction and restore the parent transaction to the "normal" transaction state.
196
+ - The documentation for the various /transactions endpoints has been reorganized:
197
+ - The `transactions` section covers endpoints that impact a single transaction.
198
+ - The `transactions (bulk)` section covers endpoints that impact multiple transactions.
199
+ - The `transactions (group)` section covers endpoints related to grouping and ungrouping transactions.
200
+ - The `transactions (split)` section covers endpoints related to splitting and unsplitting transactions.
201
+
202
+ ## v2.7.3
203
+ - This release adds the following new transactions endpoints:
204
+ - POST /transactions/split/{id}
205
+ - This is a new endpoint in v2. Use this endpoint to a split a transaction into multiple child transactions. The POST /transactions endpoint will no longer support splits
206
+ - POST /transactions/unsplit
207
+ - This has only minor changes from the existing v1 version of this API
208
+ - DELETE /transactions/{id}
209
+ - This new endpoint will delete a single transaction by ID
210
+ - DELETE /transactions
211
+ - This new endpoint will bulk delete all the transactions who's IDs were submitted in the `ids` property in the request body.
212
+ - Both DELETE endpoints will generate errors if the IDs submitted belong to group or split transactions or do not exist.
213
+ - Changes to existing endpoints:
214
+ - It is now permissible to set a `plaid_account_id` on a transaction passed in to POST /transactions.
215
+ - The following objects have been modified:
216
+ - The Plaid Account Object
217
+ - A new boolean `allow_transaction_modifications` property has been added. This represents the state of the "Allow Modifications To Transactions" toggle which is enabled by default. When this property is false, attempts to add transactions to this account will fail.
218
+
219
+
220
+ ## v2.7.2
221
+ - The following objects have been modified:
222
+ - The Transactions Object
223
+ - An optional `custom_metadata` object has been added. This can be set or modified via the API.
224
+ - This release adds the following to the /transactions endpoint
225
+ - POST /transactions
226
+ - Properties in the transaction object passed in the request have been updated to new v2 naming standards
227
+ - A new `custom_metadata` may be included as a property on the new transaction objects. This can be any valid JSON object.
228
+ - The `debit_as_negative` property on the request body is no longer supported
229
+ - Requests that contain transactions with `external_ids` behave differently
230
+ - Duplicate `external_ids` within the request body are treated as an error
231
+ - Requested transactions with an `external_id` that already exists in the database are now skipped. Any remaining transactions in the request are inserted.
232
+ - The following endpoints have been modified:
233
+ - GET /transactions/{id}
234
+ - The `include_plaid_metadata` parameter name has changed back to `include_metadata` and will now return both plaid and custom metadata.
235
+ - Tests
236
+ - Tests now require Portman version 1.30.7 or later.
237
+ - A new script `check-for-duplicates.sh` was added to the tests/scripts directory. When the newman output is redirected to a file, this script can identify tests that were skipped.
238
+
239
+
240
+ ## v2.7.1
241
+ - This release updates the sample responses for the /recurring endpoints
242
+
243
+ ## v2.7.0
244
+ - This release adds the initial version of the /plaid_accounts endpoint
245
+ - Updated changelog to mention the renamed /manual_accounts endpoints
246
+ - Minor update to the Manual Account Object Schema
247
+ - A new `external_id` property was added which can be set via the POST and PUT /manual_transactions endpoints
248
+ - Minor update to the `GET /categories` endpoint
249
+ - A new query optional parameter `is_group` can be set to `false` in order to get the API to return only a set of assignable categories.
250
+
251
+ ## v2.6.0
252
+ - This release adds the initial version of the /manual_accounts endpoint
253
+
254
+ ## v2.5.0
255
+ - This release adds the initial version of the /recurring endpoint
256
+ - A minor update was made to the response body of a DELETE /categories requests
257
+ - The `category_name` property has been removed from the `dependents` object and is now returned as a top-level property in the response body.
258
+ - Made the static mock server the default server
259
+ - v1 proxy is still available in the servers drop down.
260
+ - The links in the changelogs work with Stoplight but not Scalar, so having this as the default makes it more likely that users will be able to navigate the changelogs.
261
+
262
+ ## v2.4.1
263
+ - This release makes minor changes to the existing categories and tags endpoints
264
+ - Tags Object
265
+ - The properties `created_at`, `updated_at`, and `archived_at` have been added
266
+ - DELETE /tags endpoint
267
+ - Will now return a 422 with a dependents object if the tag is used in rules or transactions
268
+ - Will now support a `force` query param
269
+
270
+ ## v2.4.0
271
+ - This release adds the initial version of the /tags endpoint
272
+
273
+ ## v2.3.7
274
+ - This release makes minor changes to the existing categories and transactions endpoints
275
+ - Categories Object
276
+ - The `group_name` property has been removed
277
+ - Transactions Object
278
+ - Restores the property name `plaid_metadata`. This anticipates a new `user_metatdata` property in a future release.
279
+ - GET /categories endpoint
280
+ The `is_group` query parameter has been removed
281
+ - GET /transactions/{id} endpoint
282
+ - Renamed `include_metadata` to `include_plaid_metadata`
283
+ - Added `split` as a new value for the `source` enum. It's set for split transactions.
284
+ - It also corrects typos in the names of the servers listed in the spec
285
+ - The tests in this release require a version of Portman at or above 1.30.2
286
+
287
+
288
+
289
+ ## v2.3.6
290
+ - This release restores the hydration of children for category and transaction objects
291
+ - Categories Object
292
+ - The `child_ids` property of the category object is renamed `children` and is populated by fully hydrated category objects
293
+ - The `children` property will always be present for a category group.
294
+ - If the group has no child categories, `children` will be an empty list.
295
+ - Objects in the `children` list property are Child Category Objects that are similar to Category Objects, but with some differences:
296
+ - `is_income`, `exclude_from_budget`, and `exclude_from_totals` are not included since these are inherited from the category group and are no longer properties of the child categories.
297
+ - `group_id` is never `null`, `group_name` is always present, and `children` will never be present.
298
+ - GET /categories endpoint
299
+ - When `format` is set to `flattened` all categories and category groups are returned in the top level list
300
+ - Category groups will still have their `children` property
301
+ - This is done to conform to a policy that objects should have the same properties consistently across requests
302
+ - Since categories that belong to category groups are represented in the `children` property of their category group and also in the top level these categories can be found twice in the `flattened` response.
303
+ - Top-level categories that happen to belong to a category group are still full Category Objects and not Child Category Objects.
304
+ - This means they will have the `is_income`, `exclude_from_budget` and `exclude_from_totals`, properties.
305
+ - The `format` query param now has a default value of `nested`, which means that a nested list of category objects is returned by default.
306
+ - This approach is preferred since the flattened list has redundant info with each grouped category represented once in the `children` attribute of its category croup and then once in its own spot in the top-level list
307
+ - An `is_group` query parameter has been added to the `GET /categories` method.
308
+ - This can be set to `false` to return a list of assignable categories. No Category Groups are returned.
309
+ - Setting it to `true` will return a list of Category Groups, with fully hydrated `children` objects. No ungrouped categories are returned.
310
+ - When this query param is set, the value of the `format` query param is ignored if also set.
311
+ - POST and PUT /categories endpoints
312
+ - The request body for the `POST` and `PUT /categories` may now include a `children` property.
313
+ - This property is a list which may contain category objects, child category objects, or simply ids.
314
+ - Mixing the types of allowed elements in the `children` property of the request body is permitted.
315
+ - A successful response body will always include the fully hydrated Child Category Objects in the `children` property.
316
+
317
+ ## v2.3.5
318
+ - This branch adds a second demonstration server to the spec. The first server is a traditional "mock data" server that uses static canned data. The new server implements the V2 API on top of the V1 API and can be used to manipulate actual data in Lunch Money. This initial version supports only the /categories endpoint. Requests to other endpoints continue to use canned data
319
+ - Spec Updates
320
+ - The spec now includes two servers in the servers section
321
+ - The `synced_metadata` property of the transaction object was renamed `metadata` in anticipation of metadata availability in imported transactions associated with manual accounts.
322
+ - Test Updates
323
+ - A large number of new tests were added in the tests/configs/variations/category-variations.yaml. With a real backend, we can do more testing of the POST, PUT, and DELETE endpoints. Many of these tests are skipped if the postman variable isMockServer is set to true. (See [Test README](./tests/README.md))
324
+ - Tests work with Portman version 1.30.0. This release addresses reported bugs and supports tests that set form encoded query params like the `ids` param on the `GET /categories` endpoint.
325
+ - Commit Hook Updates
326
+ - The commit hook that toggles URLs in index.html and the spec between the local and deploy URLs was updated to support two separate URLs
327
+
328
+
329
+ ## v2.3.4
330
+ - This branch removes hydration options from the /categories and /transaction endpoints and objects.
331
+ - Renamed the `children` property of the category object to `children` to match the new agreed upon standard for naming types and id lists.
332
+ - Eliminated the two types of category objects, opting instead for a simpler single category object. This eliminates some of the automatic request body validation that we had but I think simplifies the docs. Additional tests were added to ensure that
333
+ - Category Groups have a `child_id` and no `group_name` property and `group_id` is null
334
+ - Categories that are part of a group have no `child_id` property, have a non null `group_id` property and have a `group_name` property.
335
+ - Ungrouped categories have a `group_id` with a value of `null` and do no have a `children` or `group_name` property
336
+ - Renamed transaction status values "cleared" and "uncleared" to "reviewed" and "unreviewed"
337
+ - Created a visual representation of the changes to the objects in changelog-visual.html
338
+ - Continued iteration on the recurring_items object.
339
+ - This version include an updated schema for the recurringItems object
340
+ - It also proposes an alternateRecurringItems object
341
+
342
+ ## v2.3.3
343
+
344
+ - This branch introduces the `GET /transactions/{id}` endpoint. As of this release this is the only endpoint that supports hydration of the category, account, recurring items and tags. Hydration is enabled via query parameter. There is also a query parameter to request synced (plaid) metadata for the transaction.
345
+
346
+ - The branch also introduces changes to the transaction object:
347
+ - A new `overrides` object property is added to the transaction object. This object is populated when a recurring rule has overridden one or more properties of the transaction as displayed in the transactions page on the GUI.
348
+ - The `payee`, `category_id`, and `notes` properties will now have values that match the transactions page in the GUI. The `display_*` properties of the transaction object have been removed. The original values can now be found in the new `overrides` object.
349
+ - The order of the properties in the transaction object schema is changed to introduce the new `overrides` property before any properties that may have been overridden. The ordering should now more closely match the transaction page on the GUI.
350
+ - The `children` property that exists in a transaction that has been split has been renamed `children`
351
+ - The transaction object now supports the optional properties: `synced_metadata`, `hydrated_recurring`, `hydrated_category`, `hydrated_account`, and `hydrated_tags`
352
+ - A set of required properties has been added to the transaction object's schema definition
353
+
354
+ - Schema definitions have been added for the `manualAccountObject`, `syncedAccountObject` and `recurringItemObject` in order to support hydration
355
+
356
+ - Tests were added
357
+ - Filter transactions by category group
358
+ - GET /transactions/{id} tests
359
+ - Updates to /categories tests
360
+ - Tests work with Portman version 1.28.0. A known bug with this version of portman requires that one of the /me variation tests is commented out
361
+
362
+
363
+ ## v2.3.2
364
+ This branch updates the tests to take advantage of bug fixes and features added to Portman 1.28.0
365
+ - Projects that implement the Lunch Money API server should update to this version of Portman
366
+ - The portman config now sets a global directive `variableCasing` to snakeCase. Use of this directive in prior versions caused some tests to fail
367
+ - The tests now have a global dynamic pre-request script that is run prior to any requests that take an ID as a path parameter. This script will "reset" the variable that the ID is set to when `PORTMAN_IS_MOCK_SERVICE=true` is set in the .env-portman file. Implementers of a Mock API server should see further details on how to define the "canned" IDs to use in the [./tests/README.md](./tests/README.md#testing-against-a-mock-service-with-immutable-data-vs-a-real-service)
368
+ - Tests added as part of this release
369
+ - /me
370
+ - Validate proper error response when no Authorization header is sent
371
+ - /transactions
372
+ - validate setting `manual_account_ids` to zero will filter out all manual account transactions
373
+ - validate setting `plaid_account_ids` to zero will filter out all synced account transactions
374
+ - validate setting both to zero will return on "cash transactions"
375
+
376
+
377
+ ## v2.3.1
378
+ This is the initial branch using the versioning described above
379
+ - It is the v2 version of the API - hence the major version 2.
380
+ - The API Spec currently supports 3 endpoints /me, /categories, and /transactions. hence the minor version 3.
381
+ - This version of the spec contains minor modifications to the previously published spec and therefore has a revision number 1
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file