@lunch-money/v2-api-spec 2.8.3 → 2.8.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -2,23 +2,17 @@ openapi: 3.0.2
2
2
  info:
3
3
  title: Lunch Money API - v2
4
4
  description: |-
5
- ## Overview
6
- Welcome to the documentation for the "next version" of the Lunch Money v2 API. This documentation includes proposed updates to the API design that have not yet been released. <br><br>
7
- This documentation is for the **v2.8.3** release of the API. <br>
8
- The latest implementation of the spec is for the **v2.8.1** release and can be found [here](https://lm-v2-api-next-a7fabcab8e9a.herokuapp.com/v2/). <br><br>
9
- Feedback on any of the API design is welcome, but we are particularly interested in getting feedback on most recent changes in the [version history](https://lm-v2-api-next-a7fabcab8e9a.herokuapp.com/v2/version-history).
10
-
11
- ------------------------------------------------------------------------------------------------
12
- Welcome the Lunch Money v2 API.
5
+ Welcome to the Lunch Money v2 API.
13
6
 
14
7
  A working version of this API is now available through these docs, or directly at:
15
8
 
16
9
  `https://api.lunchmoney.dev/v2`
17
10
 
18
- **This service has only had limited external testing so users are strongly encouraged to create a test budget with example data as the first step to interacting with the v2 API.**
19
- See the [Getting Started Guide](https://lm-v2-api-next-a7fabcab8e9a.herokuapp.com/v2/getting-started) for more information.
11
+ <span class="red-text"><strong>This is in alpha launch of a major API update. It is still subject to change during this alpha review
12
+ period and bugs may still exist. Users are strongly encouraged to use the mock service or to create a test budget with example data as the first step to interacting with the v2 API.</strong></span>
13
+ See the [Getting Started Guide](https://alpha.lunchmoney.dev/v2/getting-started) for more information on using a test budget.<br<br>
20
14
 
21
- If you are new to the v2 API, you may wish to review the [v2 API Overview of Changes](https://lm-v2-api-next-a7fabcab8e9a.herokuapp.com/v2/changelog).
15
+ If you are new to the v2 API, you may wish to review the [v2 API Overview of Changes](https://alpha.lunchmoney.dev/v2/changelog).
22
16
 
23
17
  ### Static Mock Server
24
18
 
@@ -29,17 +23,17 @@ info:
29
23
 
30
24
  ### Migrating from V1
31
25
 
32
- The v2 API is NOT backwards compatible with the v1 API. Developers are encouraged to review the [Migration Guide](https://lm-v2-api-next-a7fabcab8e9a.herokuapp.com/v2/migration-guide) to understand the changes and plan their migration.
26
+ The v2 API is NOT backwards compatible with the v1 API. Developers are encouraged to review the [Migration Guide](https://alpha.lunchmoney.dev/v2/migration-guide) to understand the changes and plan their migration.
33
27
 
34
28
  ### Acknowledgments
35
29
 
36
30
  If you have been providing feedback on the API during our iterative design process, **THANK YOU**. We are happy to provide the opportunity to finally interact with the working API that was built based on your feedback.
37
31
 
38
32
  ### Useful links:
39
- - [Getting Started](https://lm-v2-api-next-a7fabcab8e9a.herokuapp.com/v2/getting-started)
40
- - [v2 API Changelog](https://lm-v2-api-next-a7fabcab8e9a.herokuapp.com/v2/changelog)
41
- - [Migration Guide](https://lm-v2-api-next-a7fabcab8e9a.herokuapp.com/v2/migration-guide)
42
- - [Rate Limits](https://lm-v2-api-next-a7fabcab8e9a.herokuapp.com/v2/rate-limits)
33
+ - [Getting Started](https://alpha.lunchmoney.dev/v2/getting-started)
34
+ - [v2 API Changelog](https://alpha.lunchmoney.dev/v2/changelog)
35
+ - [Migration Guide](https://alpha.lunchmoney.dev/v2/migration-guide)
36
+ - [Rate Limits](https://alpha.lunchmoney.dev/v2/rate-limits)
43
37
  - [Current v1 Lunch Money API Documentation](https://lunchmoney.dev)
44
38
  - [Awesome Lunch Money Projects](https://github.com/lunch-money/awesome-lunchmoney?tab=readme-ov-file)
45
39
  termsOfService: https://lunchmoney.dev/#current-status
@@ -48,12 +42,12 @@ info:
48
42
  license:
49
43
  name: Apache 2.0
50
44
  url: http://www.apache.org/licenses/LICENSE-2.0.html
51
- version: 2.8.3
45
+ version: 2.8.4
52
46
 
53
47
  servers:
54
48
  - url: https://api.lunchmoney.dev/v2
55
49
  description: v2 Lunch Money API Server - modifies real data!
56
- - url: https://lm-v2-api-next-a7fabcab8e9a.herokuapp.com/v2
50
+ - url: https://mock.lunchmoney.dev/v2
57
51
  description: Static Mock v2 Lunch Money API Server
58
52
 
59
53
  tags:
@@ -472,6 +466,7 @@ components:
472
466
  characters.
473
467
  minLength: 1
474
468
  maxLength: 100
469
+ x-updatable: true
475
470
  description:
476
471
  type: string
477
472
  nullable: true
@@ -479,21 +474,26 @@ components:
479
474
  characters.
480
475
  minLength: 0 # Allow empty strings
481
476
  maxLength: 200
477
+ x-updatable: true
482
478
  is_income:
483
479
  type: boolean
484
480
  nullable: false
485
481
  description: If set, will indicate if this category will be treated as income. (See <a href="https://support.lunchmoney.app/setup/categories/category-properties">Category Properties</a> for more details)
482
+ x-updatable: true
486
483
  exclude_from_budget:
487
484
  type: boolean
488
485
  nullable: false
489
486
  description: If set, will indicate if this category will be excluded from budgets. (See <a href="https://support.lunchmoney.app/setup/categories/category-properties">Category Properties</a> for more details)
487
+ x-updatable: true
490
488
  exclude_from_totals:
491
489
  type: boolean
492
490
  nullable: false
493
491
  description: If set, will indicate if this category will be excluded from totals. (See <a href="https://support.lunchmoney.app/setup/categories/category-properties">Category Properties</a> for more details)
492
+ x-updatable: true
494
493
  archived:
495
494
  type: boolean
496
495
  description: If set, will indicate if this category is archived.
496
+ x-updatable: true
497
497
  group_id:
498
498
  type: integer
499
499
  format: int64
@@ -501,6 +501,7 @@ components:
501
501
  description: If set to the ID of an existing category group, and this category
502
502
  is not itself a category group, this category will be a child of the
503
503
  specified group.
504
+ x-updatable: true
504
505
  is_group:
505
506
  type: boolean
506
507
  nullable: true
@@ -523,6 +524,7 @@ components:
523
524
  any names are the same as the name of an existing category.<br> It
524
525
  is permissible to provide both full category objects and IDs as well
525
526
  as strings for names in the same request.
527
+ x-updatable: true
526
528
  items:
527
529
  oneOf:
528
530
  - type: integer
@@ -539,25 +541,30 @@ components:
539
541
  a category group the order is relative to the other categories
540
542
  within the group.<br>While this property can be set via the API it is generally set by the user in the Lunch Money GUI.
541
543
  API.
544
+ x-updatable: true
542
545
  collapsed:
543
546
  type: boolean
544
547
  nullable: true
545
548
  description: If `true`, the category is collapsed in the Lunch Money GUI.<br>While this property can be set via the API it is generally set by the user in the Lunch Money GUI.
549
+ x-updatable: true
546
550
  id:
547
551
  type: integer
548
552
  format: int64
549
553
  description: System defined unique identifier for the category. Ignored if set.
554
+ x-updatable: false
550
555
  archived_at:
551
556
  type: string
552
557
  nullable: true
553
558
  description: System set date and time of when the category was last archived (in
554
559
  the ISO 8601 extended format). Ignored if set.
560
+ x-updatable: false
555
561
  updated_at:
556
562
  type: string
557
563
  format: date-time
558
564
  nullable: false
559
565
  description: System set date and time of when the category was last updated (in
560
566
  the ISO 8601 extended format). Ignored if set.
567
+ x-updatable: false
561
568
  created_at:
562
569
  type: string
563
570
  format: date-time
@@ -565,6 +572,7 @@ components:
565
572
  description: System set date and time of when the category was created (in the
566
573
  ISO 8601 extended format). Ignored if set. (in the ISO 8601 extended
567
574
  format). Ignored if set.
575
+ x-updatable: false
568
576
 
569
577
  # The response object for a DELETE /category request with dependencies
570
578
  deleteCategoryResponseWithDependencies:
@@ -751,26 +759,26 @@ components:
751
759
  format: date-time
752
760
  description: The date and time of when the transaction was last updated (in the
753
761
  ISO 8601 extended format).
754
- is_parent:
762
+ is_split_parent:
755
763
  type: boolean
756
764
  description: If `true`, this transaction has been split into two or more other
757
765
  transactions. By default, parent transactions are not returned in
758
766
  call to `GET /transactions` but they can be queried directly by
759
767
  their ID.
760
- parent_id:
768
+ split_parent_id:
761
769
  type: integer
762
770
  format: int64
763
771
  nullable: true
764
772
  description: A transaction ID if this is a split transaction. Denotes the
765
773
  transaction ID of the original, or parent, transaction. Is null if
766
774
  this is not a split transaction
767
- is_group:
775
+ is_group_parent:
768
776
  type: boolean
769
777
  description: "`true` if this transaction represents a group of transactions. If so,
770
778
  amount and currency represent the totalled amount of transactions
771
- bearing this transaction's id as their group_id. Amount is
779
+ bearing this transaction's id as their group_parent_id. Amount is
772
780
  calculated based on the user's primary currency."
773
- group_id:
781
+ group_parent_id:
774
782
  type: integer
775
783
  format: int64
776
784
  nullable: true
@@ -779,7 +787,7 @@ components:
779
787
  transactions that were grouped are not returned in a call to `GET
780
788
  /transactions` but they can be queried directly by calling the `GET
781
789
  /transactions/group/{id}`, where the id passed is associated with a
782
- transaction where the `is_group` attribute is true
790
+ transaction where the `is_group_parent` attribute is true
783
791
  children:
784
792
  type: array
785
793
  nullable: false
@@ -790,8 +798,8 @@ components:
790
798
  unless the `include_children` query parameter is set to `true`.<br>
791
799
  For parents of split transactions, it contains a list of the associated
792
800
  transactions that it was split into. For transaction groups, it contains
793
- the transactions that were grouped together. Examine the `is_parent` and
794
- `is_group` properties to determine which of these it is.
801
+ the transactions that were grouped together. Examine the `is_split_parent` and
802
+ `is_group_parent` properties to determine which of these it is.
795
803
  plaid_metadata:
796
804
  type: object
797
805
  nullable: true
@@ -866,9 +874,9 @@ components:
866
874
  - is_pending
867
875
  - created_at
868
876
  - updated_at
869
- - parent_id
870
- - is_group
871
- - group_id
877
+ - split_parent_id
878
+ - is_group_parent
879
+ - group_parent_id
872
880
  - manual_account_id
873
881
  - plaid_account_id
874
882
  - tag_ids
@@ -977,26 +985,26 @@ components:
977
985
  format: date-time
978
986
  description: The date and time of when the transaction was last updated (in the
979
987
  ISO 8601 extended format).
980
- is_parent:
988
+ is_split_parent:
981
989
  type: boolean
982
990
  description: If true this transaction has been split into two or more other
983
991
  transactions. By default parent transactions are not returned in
984
992
  call to `GET /transactions` but they can be queried directly by
985
993
  their ID.
986
- parent_id:
994
+ split_parent_id:
987
995
  type: integer
988
996
  format: int64
989
997
  nullable: true
990
998
  description: A transaction ID if this is a split transaction. Denotes the
991
999
  transaction ID of the original, or parent, transaction. Is null if
992
1000
  this is not a split transaction
993
- is_group:
1001
+ is_group_parent:
994
1002
  type: boolean
995
1003
  description: True if this transaction represents a group of transactions. If so,
996
1004
  amount and currency represent the totalled amount of transactions
997
- bearing this transaction's id as their group_id. Amount is
1005
+ bearing this transaction's id as their group_parent_id. Amount is
998
1006
  calculated based on the user's primary currency.
999
- group_id:
1007
+ group_parent_id:
1000
1008
  type: integer
1001
1009
  format: int64
1002
1010
  nullable: true
@@ -1005,7 +1013,7 @@ components:
1005
1013
  transactions that were grouped are not returned in a call to `GET
1006
1014
  /transactions` but they can be queried directly by calling the `GET
1007
1015
  /transactions/group/{id}`, where the id passed is associated with a
1008
- transaction where the `is_group` attribute is true
1016
+ transaction where the `is_group_parent` attribute is true
1009
1017
  manual_account_id:
1010
1018
  type: integer
1011
1019
  format: int32
@@ -1119,9 +1127,9 @@ components:
1119
1127
  - is_pending
1120
1128
  - created_at
1121
1129
  - updated_at
1122
- - parent_id
1123
- - is_group
1124
- - group_id
1130
+ - split_parent_id
1131
+ - is_group_parent
1132
+ - group_parent_id
1125
1133
  - manual_account_id
1126
1134
  - plaid_account_id
1127
1135
  - tag_ids
@@ -1150,7 +1158,7 @@ components:
1150
1158
  Positive values indicate a debit transaction, negative values indicate a credit transaction.
1151
1159
  currency:
1152
1160
  description: Three-letter lowercase currency code of the transaction in ISO 4217
1153
- format. Must match one of the [supported currencies](https://lm-v2-api-next-a7fabcab8e9a.herokuapp.com/v2/currencies). If not set
1161
+ format. Must match one of the [supported currencies](https://alpha.lunchmoney.dev/v2/currencies). If not set
1154
1162
  defaults to the user account's primary currency.
1155
1163
  allOf:
1156
1164
  - $ref: "#/components/schemas/currencyEnum"
@@ -1253,10 +1261,12 @@ components:
1253
1261
  type: integer
1254
1262
  format: int64
1255
1263
  description: System defined unique identifier of this transaction. Ignored if set.
1264
+ x-updatable: false
1256
1265
  date:
1257
1266
  type: string
1258
1267
  format: date
1259
1268
  description: Date of transaction in ISO 8601 format
1269
+ x-updatable: true
1260
1270
  amount:
1261
1271
  oneOf:
1262
1272
  - type: number
@@ -1269,11 +1279,13 @@ components:
1269
1279
  <br>
1270
1280
  May not be updated on transactions that belong to a synced account
1271
1281
  with the "Allow Modifications to Transactions" property disabled.
1282
+ x-updatable: true
1272
1283
  currency:
1273
1284
  description: Three-letter lowercase currency code of the transaction in ISO 4217
1274
1285
  format.<br> May not be updated on transactions that belong to a
1275
1286
  synced account with the "Allow Modifications to Transactions"
1276
1287
  property disabled.
1288
+ x-updatable: true
1277
1289
  allOf:
1278
1290
  - $ref: "#/components/schemas/currencyEnum"
1279
1291
  recurring_id:
@@ -1282,18 +1294,21 @@ components:
1282
1294
  nullable: true
1283
1295
  description: The unique identifier of the associated recurring item that this
1284
1296
  transaction matches.
1297
+ x-updatable: true
1285
1298
  payee:
1286
1299
  type: string
1287
1300
  description: |
1288
1301
  The new payee for the transaction.
1289
1302
  minLength: 0
1290
1303
  maxLength: 140
1304
+ x-updatable: true
1291
1305
  category_id:
1292
1306
  type: integer
1293
1307
  format: int32
1294
1308
  nullable: true
1295
1309
  description: Unique identifier of the category for this transaction. Set this to
1296
1310
  null to clear the transaction's category.
1311
+ x-updatable: true
1297
1312
  notes:
1298
1313
  type: string
1299
1314
  nullable: true
@@ -1302,6 +1317,7 @@ components:
1302
1317
  the existing notes.
1303
1318
  minLength: 0
1304
1319
  maxLength: 350
1320
+ x-updatable: true
1305
1321
  manual_account_id:
1306
1322
  type: integer
1307
1323
  format: int32
@@ -1312,6 +1328,7 @@ components:
1312
1328
  null value. Moving an existing transaction to to another account
1313
1329
  will not work if the transaction belongs to a synced account who's
1314
1330
  "Allow Modifications to Transactions" property is not set.
1331
+ x-updatable: true
1315
1332
  plaid_account_id:
1316
1333
  type: integer
1317
1334
  format: int32
@@ -1322,6 +1339,7 @@ components:
1322
1339
  account will not work if the account's "Allow Modifications to
1323
1340
  Transactions" property is not set. Similarly, this cannot be set to an
1324
1341
  id associated with this type of locked Plaid account.
1342
+ x-updatable: true
1325
1343
  tag_ids:
1326
1344
  type: array
1327
1345
  nullable: false
@@ -1330,6 +1348,7 @@ components:
1330
1348
  `additional_tag_ids` to add tags to the existing transaction's tags.
1331
1349
  Set this to an empty array to remove all tags from a transaction. If
1332
1350
  set `additional_tag_ids` may not be set.
1351
+ x-updatable: true
1333
1352
  items:
1334
1353
  type: integer
1335
1354
  format: int32
@@ -1340,6 +1359,7 @@ components:
1340
1359
  set, the tags listed in this property be added to any existing
1341
1360
  transaction tags. Use `tag_ids` to overwrite or clear transaction
1342
1361
  tags. If set `tag_ids` may not be set.
1362
+ x-updatable: true
1343
1363
  items:
1344
1364
  type: integer
1345
1365
  format: int32
@@ -1352,10 +1372,12 @@ components:
1352
1372
  `manual_account_id`/`external_id` combination.
1353
1373
  minLength: 0
1354
1374
  maxLength: 75
1375
+ x-updatable: true
1355
1376
  custom_metadata:
1356
1377
  type: object
1357
1378
  nullable: true
1358
1379
  description: User defined JSON data that can be set or cleared via the API.
1380
+ x-updatable: true
1359
1381
  status:
1360
1382
  type: string
1361
1383
  description: >
@@ -1370,33 +1392,40 @@ components:
1370
1392
  enum:
1371
1393
  - reviewed
1372
1394
  - unreviewed
1395
+ x-updatable: true
1373
1396
  to_base:
1374
1397
  type: number
1375
1398
  format: double
1376
1399
  description: System defined amount of this transaction in the user's primary
1377
- currency. Ignored if set.
1400
+ currency. Ignored if set. Use `amount` to update the amount in the transaction.
1401
+ x-updatable: false
1378
1402
  is_pending:
1379
1403
  type: boolean
1380
1404
  description: System defined flag set for pending transactions. Ignored if set.
1405
+ x-updatable: false
1381
1406
  plaid_metadata:
1382
1407
  type: object
1383
1408
  nullable: true
1384
1409
  description: System set metadata from a Plaid account sync. Ignored if set.
1410
+ x-updatable: false
1385
1411
  created_at:
1386
1412
  type: string
1387
1413
  format: date-time
1388
1414
  description: System defined date and time of when the transaction was created.
1389
1415
  Ignored if set.
1416
+ x-updatable: false
1390
1417
  updated_at:
1391
1418
  type: string
1392
1419
  format: date-time
1393
1420
  description: System defined date and time of when the transaction was last
1394
1421
  updated. Ignored if set.
1395
- is_parent:
1422
+ x-updatable: false
1423
+ is_split_parent:
1396
1424
  type: boolean
1397
1425
  description: System defined boolean indicating if this transaction was split.
1398
1426
  To split or unsplit a transaction use the
1399
- `/transactions/split` endpoint. Ignored if set.
1427
+ `/transactions/split` endpoint. Ignored if set.
1428
+ x-updatable: false
1400
1429
  children:
1401
1430
  type: array
1402
1431
  nullable: false
@@ -1404,28 +1433,33 @@ components:
1404
1433
  $ref: "#/components/schemas/childTransactionObject"
1405
1434
  description: An array of child transactions that exists when a transaction has
1406
1435
  been split or if the transaction is a group. Split
1436
+ x-updatable: false
1407
1437
  and Grouped transactions may not be modified using this API. Ignored if set.
1408
- parent_id:
1438
+ split_parent_id:
1409
1439
  type: integer
1410
1440
  format: int64
1411
1441
  nullable: true
1412
1442
  description: A transaction ID if this is a split transaction. Split
1413
1443
  transactions may not be modified this API. Use the
1414
- `transactions/split` endpoint instead. Ignored if set.
1415
- is_group:
1444
+ `transactions/split` endpoint instead. Ignored if set.
1445
+ x-updatable: false
1446
+ is_group_parent:
1416
1447
  type: boolean
1417
1448
  description: System defined boolean indicating if this transaction represents a
1418
- group of transactions. Grouped transactions may not be modified with this API. Use the `transactions/group` endpoint instead. Ignored if set.
1419
- group_id:
1449
+ group of transactions. Grouped transactions may not be modified with this API. Use the `transactions/group` endpoint instead. Ignored if set.
1450
+ x-updatable: false
1451
+ group_parent_id:
1420
1452
  type: integer
1421
1453
  format: int64
1422
1454
  nullable: true
1423
- description: A transaction group ID if this transaction is part of a group. Grouped transactions may not be modified with this API. Use the `transactions/group` endpoint instead. Ignored if set.
1455
+ description: A transaction group ID if this transaction is part of a group. Grouped transactions may not be modified with this API. Use the `transactions/group` endpoint instead. Ignored if set.
1456
+ x-updatable: false
1424
1457
  source:
1425
1458
  type: string
1426
1459
  nullable: true
1427
1460
  description: |
1428
1461
  System defined original source of the transaction. Ignored if set.
1462
+ x-updatable: false
1429
1463
  enum:
1430
1464
  - api
1431
1465
  - csv
@@ -1762,13 +1796,16 @@ components:
1762
1796
  type: integer
1763
1797
  format: int32
1764
1798
  description: System defined unique identifier of this account. Ignored if set.
1799
+ x-updatable: false
1765
1800
  name:
1766
1801
  type: string
1767
1802
  description: If set, the new name of the manual account.
1768
1803
  minLength: 1
1769
1804
  maxLength: 45
1805
+ x-updatable: true
1770
1806
  type:
1771
1807
  description: If set, the new type of the manual account.
1808
+ x-updatable: true
1772
1809
  allOf:
1773
1810
  - $ref: "#/components/schemas/accountTypeEnum"
1774
1811
  subtype:
@@ -1777,11 +1814,13 @@ components:
1777
1814
  retirement - checking - savings - prepaid credit card
1778
1815
  minLength: 1
1779
1816
  maxLength: 100
1817
+ x-updatable: true
1780
1818
  display_name:
1781
1819
  type: string
1782
1820
  nullable: true
1783
1821
  description: If set, an optional display name for the manual account.<br>
1784
1822
  This must be unique for the user. If not set, it will be derived from the `institution_name` (if any) concatenated with the `name`.
1823
+ x-updatable: true
1785
1824
  balance:
1786
1825
  oneOf:
1787
1826
  - type: number
@@ -1792,6 +1831,7 @@ components:
1792
1831
  description: Numeric value of the current balance, up to four decimal places, of
1793
1832
  the manual account as a number or string. Do not include any special
1794
1833
  characters aside from a decimal point.
1834
+ x-updatable: true
1795
1835
  balance_as_of:
1796
1836
  type: string
1797
1837
  oneOf:
@@ -1801,14 +1841,17 @@ components:
1801
1841
  May be set as a date, ie: YYYY-MM-DD, or date-time string in ISO 8601 extended format.
1802
1842
  This property is ignored if `balance` is not also set. If `balance` is set and this property is
1803
1843
  not set the current time is used."
1844
+ x-updatable: true
1804
1845
  closed_on:
1805
1846
  type: string
1806
1847
  format: date
1807
1848
  nullable: true
1808
1849
  description: If set, the date this manual account was closed in YYYY-MM-DD format.
1850
+ x-updatable: true
1809
1851
  currency:
1810
1852
  description: If set, the new three-letter lowercase currency code of the manual account
1811
1853
  balance.
1854
+ x-updatable: true
1812
1855
  allOf:
1813
1856
  - $ref: "#/components/schemas/currencyEnum"
1814
1857
  institution_name:
@@ -1817,12 +1860,14 @@ components:
1817
1860
  description: If set, the name of institution holding the account.
1818
1861
  minLength: 1
1819
1862
  maxLength: 50
1863
+ x-updatable: true
1820
1864
  external_id:
1821
1865
  type: string
1822
1866
  nullable: true
1823
1867
  minLength: 0
1824
1868
  maxLength: 75
1825
1869
  description: An optional user-defined ID for the manual account.
1870
+ x-updatable: true
1826
1871
  custom_metadata:
1827
1872
  type: object
1828
1873
  nullable: true
@@ -1830,19 +1875,27 @@ components:
1830
1875
  this account. This must be a valid JSON object and, when
1831
1876
  stringified, must not exceed 4096 characters.
1832
1877
  additionalProperties: true
1878
+ x-updatable: true
1833
1879
  exclude_from_transactions:
1834
1880
  type: boolean
1835
1881
  description: If set, transactions may not be assigned to this manual account.
1882
+ x-updatable: true
1883
+ to_base:
1884
+ type: number
1885
+ description: System defined balance converted to the user's primary currency. Ignored if set. Use `balance` to update the balance in the account.
1886
+ x-updatable: false
1836
1887
  created_at:
1837
1888
  type: string
1838
1889
  format: date-time
1839
1890
  description: System defined date/time the account was created in ISO 8601
1840
1891
  extended format. Ignored if set.
1892
+ x-updatable: false
1841
1893
  updated_at:
1842
1894
  type: string
1843
1895
  format: date-time
1844
1896
  description: System defined date/time the account was created in ISO 8601
1845
1897
  extended format. Ignored if set.
1898
+ x-updatable: false
1846
1899
 
1847
1900
  # The object containing information about a Plaid account
1848
1901
  plaidAccountObject:
@@ -2083,42 +2136,51 @@ components:
2083
2136
  characters.
2084
2137
  minLength: 1
2085
2138
  maxLength: 100
2139
+ x-updatable: true
2086
2140
  description:
2087
2141
  type: string
2088
2142
  nullable: true
2089
2143
  description: If set, the new description of the category. Must not exceed 200
2090
2144
  characters.
2091
2145
  maxLength: 200
2146
+ x-updatable: true
2092
2147
  text_color:
2093
2148
  type: string
2094
2149
  nullable: true
2095
2150
  description: The text color of the tag.
2151
+ x-updatable: true
2096
2152
  background_color:
2097
2153
  type: string
2098
2154
  nullable: true
2099
2155
  description: The background color of the tag.
2156
+ x-updatable: true
2100
2157
  archived:
2101
2158
  type: boolean
2102
2159
  description: If set, will indicate if this category is archived.
2160
+ x-updatable: true
2103
2161
  id:
2104
2162
  type: integer
2105
2163
  format: int32
2106
2164
  description: System-defined unique identifier for the category. Ignored if set.
2165
+ x-updatable: false
2107
2166
  updated_at:
2108
2167
  type: string
2109
2168
  format: date-time
2110
2169
  nullable: false
2111
2170
  description: System-set time the tag was last updated. Ignored if set
2171
+ x-updatable: false
2112
2172
  created_at:
2113
2173
  type: string
2114
2174
  format: date-time
2115
2175
  nullable: false
2116
2176
  description: System-set time the tag was created. Ignored if set.
2177
+ x-updatable: false
2117
2178
  archived_at:
2118
2179
  type: string
2119
2180
  format: date-time
2120
2181
  nullable: true
2121
2182
  description: System-set time the tag was archived. Ignored if set.
2183
+ x-updatable: false
2122
2184
 
2123
2185
  # The object returned when a DELETE /tag/:id request
2124
2186
  # has an id for a tag that has dependencies
@@ -2814,6 +2876,8 @@ components:
2814
2876
  type: array
2815
2877
  items:
2816
2878
  $ref: "#/components/schemas/summaryCategoryOccurrenceObject"
2879
+ rollover_pool:
2880
+ $ref: "#/components/schemas/summaryRolloverPoolObject"
2817
2881
  required:
2818
2882
  - category_id
2819
2883
  - totals
@@ -2886,8 +2950,8 @@ components:
2886
2950
  x-internal: true # Don't display in schemas section of docs
2887
2951
  description: "The date and adjusted balance of the rollover pool at the time of the adjustment."
2888
2952
  properties:
2889
- current:
2890
- description: "true if this is the current rollover pool balance."
2953
+ in_range:
2954
+ description: "true if this rollover pool adjustment is for a budget period that falls within the given date range."
2891
2955
  type: boolean
2892
2956
  date:
2893
2957
  type: string
@@ -2903,7 +2967,7 @@ components:
2903
2967
  description: "Amount of the rollover pool converted to the user's default currency."
2904
2968
  type: number
2905
2969
  required:
2906
- - current
2970
+ - in_range
2907
2971
  - date
2908
2972
  - amount
2909
2973
  - currency
@@ -2978,8 +3042,8 @@ components:
2978
3042
  description: "Per period budget activity for the each budget period within the given date range.<br>
2979
3043
  This is only returned if the query parameter `include_occurrences` is set to `true`."
2980
3044
  properties:
2981
- current:
2982
- description: true if this occurrence is the current budget period.
3045
+ in_range:
3046
+ description: true if this occurrence is within the given date range.
2983
3047
  type: boolean
2984
3048
  start_date:
2985
3049
  description: The start date of the budget period.
@@ -3015,7 +3079,7 @@ components:
3015
3079
  type: string
3016
3080
  nullable: true
3017
3081
  required:
3018
- - current
3082
+ - in_range
3019
3083
  - start_date
3020
3084
  - end_date
3021
3085
  - other_activity
@@ -3213,6 +3277,13 @@ paths:
3213
3277
  schema:
3214
3278
  type: boolean
3215
3279
  default: false
3280
+ - in: query
3281
+ name: include_past_budget_dates
3282
+ description: "Enable to include the three budget occurrences prior to the start date in the `occurrences` array for each category in an aligned response. This property is ignored if `include_occurrences` is not also set to `true`."
3283
+ required: false
3284
+ schema:
3285
+ type: boolean
3286
+ default: false
3216
3287
  - in: query
3217
3288
  name: include_totals
3218
3289
  description: "Enable to include a top-level `totals` section that summarizes the inflow and outflow across all transactions for the specified date range."
@@ -3220,6 +3291,13 @@ paths:
3220
3291
  schema:
3221
3292
  type: boolean
3222
3293
  default: false
3294
+ - in: query
3295
+ name: include_rollover_pool
3296
+ description: "Enable to include a `rollover_pool` section that summarizes the current rollover pool balance and all previous adjustments."
3297
+ required: false
3298
+ schema:
3299
+ type: boolean
3300
+ default: false
3223
3301
  responses:
3224
3302
  "200":
3225
3303
  description: Budget summary for the requested range.
@@ -3245,7 +3323,7 @@ paths:
3245
3323
  recurring_remaining: 0
3246
3324
  recurring_expected: 0
3247
3325
  occurrences:
3248
- - current: false
3326
+ - in_range: true
3249
3327
  start_date: "2025-07-01"
3250
3328
  end_date: "2025-07-31"
3251
3329
  other_activity: 156.64
@@ -3254,7 +3332,7 @@ paths:
3254
3332
  budgeted_amount: "500.0000"
3255
3333
  budgeted_currency: "usd"
3256
3334
  notes: "Monthly budget allocation"
3257
- - current: false
3335
+ - in_range: true
3258
3336
  start_date: "2025-08-01"
3259
3337
  end_date: "2025-08-31"
3260
3338
  other_activity: 0
@@ -3272,7 +3350,7 @@ paths:
3272
3350
  recurring_remaining: 0
3273
3351
  recurring_expected: 0
3274
3352
  occurrences:
3275
- - current: false
3353
+ - in_range: true
3276
3354
  start_date: "2025-07-01"
3277
3355
  end_date: "2025-07-31"
3278
3356
  other_activity: 424.8
@@ -3281,7 +3359,7 @@ paths:
3281
3359
  budgeted_amount: "200.0000"
3282
3360
  budgeted_currency: "usd"
3283
3361
  notes: "Based on previous month's activity"
3284
- - current: false
3362
+ - in_range: true
3285
3363
  start_date: "2025-08-01"
3286
3364
  end_date: "2025-08-31"
3287
3365
  other_activity: 0
@@ -3299,7 +3377,7 @@ paths:
3299
3377
  recurring_remaining: 0
3300
3378
  recurring_expected: 0
3301
3379
  occurrences:
3302
- - current: false
3380
+ - in_range: true
3303
3381
  start_date: "2025-07-01"
3304
3382
  end_date: "2025-07-31"
3305
3383
  other_activity: 25.69
@@ -3308,7 +3386,7 @@ paths:
3308
3386
  budgeted_amount: "200.0000"
3309
3387
  budgeted_currency: "usd"
3310
3388
  notes: "Holiday spending budget"
3311
- - current: false
3389
+ - in_range: true
3312
3390
  start_date: "2025-08-01"
3313
3391
  end_date: "2025-08-31"
3314
3392
  other_activity: 0
@@ -3394,7 +3472,7 @@ paths:
3394
3472
  recurring_remaining: 0
3395
3473
  recurring_expected: 0
3396
3474
  occurrences:
3397
- - current: false
3475
+ - in_range: true
3398
3476
  start_date: "2025-07-01"
3399
3477
  end_date: "2025-07-31"
3400
3478
  other_activity: 156.64
@@ -3412,7 +3490,7 @@ paths:
3412
3490
  recurring_remaining: 0
3413
3491
  recurring_expected: 0
3414
3492
  occurrences:
3415
- - current: false
3493
+ - in_range: true
3416
3494
  start_date: "2025-07-01"
3417
3495
  end_date: "2025-07-31"
3418
3496
  other_activity: 424.8
@@ -3430,7 +3508,7 @@ paths:
3430
3508
  recurring_remaining: 0
3431
3509
  recurring_expected: 0
3432
3510
  occurrences:
3433
- - current: false
3511
+ - in_range: true
3434
3512
  start_date: "2025-07-01"
3435
3513
  end_date: "2025-07-31"
3436
3514
  other_activity: 0
@@ -3467,7 +3545,7 @@ paths:
3467
3545
  recurring_remaining: 0
3468
3546
  recurring_expected: 0
3469
3547
  occurrences:
3470
- - current: false
3548
+ - in_range: true
3471
3549
  start_date: "2025-07-01"
3472
3550
  end_date: "2025-07-31"
3473
3551
  other_activity: 156.64
@@ -3476,7 +3554,7 @@ paths:
3476
3554
  budgeted_amount: "500.0000"
3477
3555
  budgeted_currency: "usd"
3478
3556
  notes: "Monthly budget allocation"
3479
- - current: false
3557
+ - in_range: true
3480
3558
  start_date: "2025-08-01"
3481
3559
  end_date: "2025-08-31"
3482
3560
  other_activity: 0
@@ -3494,7 +3572,7 @@ paths:
3494
3572
  recurring_remaining: 0
3495
3573
  recurring_expected: 0
3496
3574
  occurrences:
3497
- - current: false
3575
+ - in_range: true
3498
3576
  start_date: "2025-07-01"
3499
3577
  end_date: "2025-07-31"
3500
3578
  other_activity: 424.8
@@ -3503,7 +3581,7 @@ paths:
3503
3581
  budgeted_amount: "200.0000"
3504
3582
  budgeted_currency: "usd"
3505
3583
  notes: "Based on previous month's activity"
3506
- - current: false
3584
+ - in_range: true
3507
3585
  start_date: "2025-08-01"
3508
3586
  end_date: "2025-08-31"
3509
3587
  other_activity: 0
@@ -3521,7 +3599,7 @@ paths:
3521
3599
  recurring_remaining: 0
3522
3600
  recurring_expected: 0
3523
3601
  occurrences:
3524
- - current: false
3602
+ - in_range: true
3525
3603
  start_date: "2025-07-01"
3526
3604
  end_date: "2025-07-31"
3527
3605
  other_activity: 25.69
@@ -3530,7 +3608,7 @@ paths:
3530
3608
  budgeted_amount: "200.0000"
3531
3609
  budgeted_currency: "usd"
3532
3610
  notes: "Holiday spending budget"
3533
- - current: false
3611
+ - in_range: true
3534
3612
  start_date: "2025-08-01"
3535
3613
  end_date: "2025-08-31"
3536
3614
  other_activity: 0
@@ -3539,6 +3617,99 @@ paths:
3539
3617
  budgeted_amount: "200.0000"
3540
3618
  budgeted_currency: "usd"
3541
3619
  notes: "Summer vacation savings"
3620
+ "with past occurrences":
3621
+ summary: "Monthly budget summary with past occurrences included"
3622
+ description: "Example response for aligned monthly budget periods with include_past_budget_dates=true, showing 3 past occurrences with in_range: false"
3623
+ value:
3624
+ aligned: true
3625
+ categories:
3626
+ - category_id: 315177
3627
+ totals:
3628
+ other_activity: 156.64
3629
+ recurring_activity: 0
3630
+ budgeted: 500
3631
+ available: 343.36
3632
+ recurring_remaining: 0
3633
+ recurring_expected: 0
3634
+ occurrences:
3635
+ - in_range: false
3636
+ start_date: "2025-04-01"
3637
+ end_date: "2025-04-30"
3638
+ other_activity: 120.50
3639
+ recurring_activity: 0
3640
+ budgeted: 500
3641
+ budgeted_amount: "500.0000"
3642
+ budgeted_currency: "usd"
3643
+ notes: "Monthly budget allocation"
3644
+ - in_range: false
3645
+ start_date: "2025-05-01"
3646
+ end_date: "2025-05-31"
3647
+ other_activity: 180.25
3648
+ recurring_activity: 0
3649
+ budgeted: 500
3650
+ budgeted_amount: "500.0000"
3651
+ budgeted_currency: "usd"
3652
+ notes: null
3653
+ - in_range: false
3654
+ start_date: "2025-06-01"
3655
+ end_date: "2025-06-30"
3656
+ other_activity: 200.00
3657
+ recurring_activity: 0
3658
+ budgeted: 500
3659
+ budgeted_amount: "500.0000"
3660
+ budgeted_currency: "usd"
3661
+ notes: "Adjusted for seasonal spending"
3662
+ - in_range: true
3663
+ start_date: "2025-07-01"
3664
+ end_date: "2025-07-31"
3665
+ other_activity: 156.64
3666
+ recurring_activity: 0
3667
+ budgeted: 500
3668
+ budgeted_amount: "500.0000"
3669
+ budgeted_currency: "usd"
3670
+ notes: "Monthly budget allocation"
3671
+ "with rollover pool":
3672
+ summary: "Monthly budget summary with rollover pool included"
3673
+ description: "Example response for aligned monthly budget periods with include_rollover_pool=true, showing rollover pool data for categories with budgets"
3674
+ value:
3675
+ aligned: true
3676
+ categories:
3677
+ - category_id: 315177
3678
+ totals:
3679
+ other_activity: 156.64
3680
+ recurring_activity: 0
3681
+ budgeted: 500
3682
+ available: 343.36
3683
+ recurring_remaining: 0
3684
+ recurring_expected: 0
3685
+ occurrences:
3686
+ - in_range: true
3687
+ start_date: "2025-07-01"
3688
+ end_date: "2025-07-31"
3689
+ other_activity: 156.64
3690
+ recurring_activity: 0
3691
+ budgeted: 500
3692
+ budgeted_amount: "500.0000"
3693
+ budgeted_currency: "usd"
3694
+ notes: "Monthly budget allocation"
3695
+ rollover_pool:
3696
+ budgeted_to_base: 179.50
3697
+ all_adjustments:
3698
+ - in_range: false
3699
+ date: "2025-06-30"
3700
+ amount: "179.5000"
3701
+ currency: "usd"
3702
+ to_base: 179.50
3703
+ - in_range: false
3704
+ date: "2025-05-31"
3705
+ amount: "120.2500"
3706
+ currency: "usd"
3707
+ to_base: 120.25
3708
+ - in_range: false
3709
+ date: "2025-04-30"
3710
+ amount: "80.0000"
3711
+ currency: "usd"
3712
+ to_base: 80.00
3542
3713
  "401":
3543
3714
  $ref: "#/components/responses/unauthorizedToken"
3544
3715
  "429":
@@ -4547,7 +4718,7 @@ paths:
4547
4718
 
4548
4719
  You may submit the response from a `GET /manual_accounts/{id}` as the request body, however only certain
4549
4720
  properties can be updated using this API. The following system set properties are
4550
- accepted in the request body but their values will be ignored: `id`, `created_at`, and `updated_at`.<br><br>
4721
+ accepted in the request body but their values will be ignored: `id`, `to_base`, `created_at`, and `updated_at`.<br><br>
4551
4722
 
4552
4723
  It is also possible to provide only the properties to be updated in the
4553
4724
  request body, as long as the request includes at least one of the
@@ -5044,6 +5215,28 @@ paths:
5044
5215
  format: date
5045
5216
  description: "Denotes the end of the time period you'd like to get transactions
5046
5217
  for. Required if start_date exists. "
5218
+ - name: created_since
5219
+ in: query
5220
+ schema:
5221
+ oneOf:
5222
+ - type: string
5223
+ format: date
5224
+ - type: string
5225
+ format: date-time
5226
+ description: Filter transactions to those created after the specified timestamp.
5227
+ Accepts either a date (YYYY-MM-DD) or ISO 8601 datetime string. Date-only values
5228
+ are interpreted as midnight UTC (00:00:00Z).
5229
+ - name: updated_since
5230
+ in: query
5231
+ schema:
5232
+ oneOf:
5233
+ - type: string
5234
+ format: date
5235
+ - type: string
5236
+ format: date-time
5237
+ description: Filter transactions to those updated after the specified timestamp.
5238
+ Accepts either a date (YYYY-MM-DD) or ISO 8601 datetime string. Date-only values
5239
+ are interpreted as midnight UTC (00:00:00Z).
5047
5240
  - name: manual_account_id
5048
5241
  in: query
5049
5242
  schema:
@@ -5051,9 +5244,11 @@ paths:
5051
5244
  format: int32
5052
5245
  description: Filter transactions to those associated with specified manual
5053
5246
  account ID or set this to 0 to omit any transactions from manual
5054
- accounts. Setting both this and `synched_account_id` to 0 will
5247
+ accounts. Setting both this and `plaid_account_id` to 0 will
5055
5248
  return transactions with no account. These are listed as "Cash
5056
- Transactions" in the Lunch Money GUI.
5249
+ Transactions" in the Lunch Money GUI.<br>
5250
+ Note that transaction groups are not associated with any account. If you want
5251
+ the response to include transactions from transaction groups, set the `include_group_children` query parameter to `true` when filtering by manual accounts.
5057
5252
  examples:
5058
5253
  euro travel card:
5059
5254
  value: 219909
@@ -5068,11 +5263,13 @@ paths:
5068
5263
  account ID or set this to 0 to omit any transactions from plaid
5069
5264
  accounts. Setting both this and `manual_account_id` to 0 will return
5070
5265
  transactions with no account. These are listed as "Cash
5071
- Transactions" in the Lunch Money GUI.
5266
+ Transactions" in the Lunch Money GUI.<br>
5267
+ Note that transaction groups are not associated with any account. If you want
5268
+ the response to include transactions from transaction groups, set the `include_group_children` query parameter to `true` when filtering by plaid accounts.
5072
5269
  examples:
5073
5270
  brokerage account:
5074
5271
  value: 119807
5075
- no synched accounts:
5272
+ no plaid accounts:
5076
5273
  value: 0
5077
5274
  - name: recurring_id
5078
5275
  in: query
@@ -5107,7 +5304,7 @@ paths:
5107
5304
  format: int32
5108
5305
  description: Filter transactions to those that have a tag with the specified Tag
5109
5306
  ID
5110
- - name: is_group
5307
+ - name: is_group_parent
5111
5308
  in: query
5112
5309
  schema:
5113
5310
  type: boolean
@@ -5174,6 +5371,14 @@ paths:
5174
5371
  returned transactions objects to include any transactions that were
5175
5372
  split into multiple transactions. Use with caution as this data is
5176
5373
  normally not exposed after the split transactions are created.
5374
+ - name: include_group_children
5375
+ in: query
5376
+ schema:
5377
+ type: boolean
5378
+ default: false
5379
+ description: By default, individual transactions that joined into a transaction group
5380
+ are not included in the response. Set to true if you'd like the
5381
+ returned transactions objects to include any transactions that joined into a transaction group.
5177
5382
  - name: include_children
5178
5383
  in: query
5179
5384
  schema:
@@ -5201,18 +5406,18 @@ paths:
5201
5406
  default: 1000
5202
5407
  description: Sets the maximum number of transactions to return. If more match
5203
5408
  the filter criteria, the response will include a `has_more`
5204
- attribute set to `true`. See [Pagination](https://lm-v2-api-next-a7fabcab8e9a.herokuapp.com/v2/pagination)
5409
+ attribute set to `true`. See [Pagination](https://alpha.lunchmoney.dev/v2/pagination)
5205
5410
  - name: offset
5206
5411
  in: query
5207
5412
  schema:
5208
5413
  type: integer
5209
5414
  description: Sets the offset for the records returned. This is typically set
5210
- automatically in the header. See [Pagination](https://lm-v2-api-next-a7fabcab8e9a.herokuapp.com/v2/pagination)
5415
+ automatically in the header. See [Pagination](https://alpha.lunchmoney.dev/v2/pagination)
5211
5416
  responses:
5212
5417
  "200":
5213
5418
  description: Returns an array of transactions. <br><br>The `has_more` property
5214
5419
  is set to `true` if more transactions are available. See
5215
- [Pagination](https://lm-v2-api-next-a7fabcab8e9a.herokuapp.com/v2/pagination)
5420
+ [Pagination](https://alpha.lunchmoney.dev/v2/pagination)
5216
5421
  content:
5217
5422
  application/json:
5218
5423
  schema:
@@ -5247,10 +5452,10 @@ paths:
5247
5452
  is_pending: false
5248
5453
  created_at: "2024-07-28T17:00:06.192Z"
5249
5454
  updated_at: "2024-07-28T17:00:06.733Z"
5250
- is_parent: false
5251
- parent_id: null
5252
- is_group: false
5253
- group_id: null
5455
+ is_split_parent: false
5456
+ split_parent_id: null
5457
+ is_group_parent: false
5458
+ group_parent_id: null
5254
5459
  manual_account_id: null
5255
5460
  plaid_account_id: 119806
5256
5461
  tag_ids:
@@ -5270,10 +5475,10 @@ paths:
5270
5475
  is_pending: false
5271
5476
  created_at: "2024-07-24T17:00:06.192Z"
5272
5477
  updated_at: "2024-07-24T17:00:06.192Z"
5273
- is_parent: false
5274
- parent_id: null
5275
- is_group: false
5276
- group_id: null
5478
+ is_split_parent: false
5479
+ split_parent_id: null
5480
+ is_group_parent: false
5481
+ group_parent_id: null
5277
5482
  manual_account_id: null
5278
5483
  plaid_account_id: 119805
5279
5484
  tag_ids:
@@ -5293,10 +5498,10 @@ paths:
5293
5498
  notes: null
5294
5499
  created_at: "2024-07-22T17:00:06.192Z"
5295
5500
  updated_at: "2024-07-22T17:00:06.733Z"
5296
- is_parent: false
5297
- parent_id: null
5298
- is_group: false
5299
- group_id: null
5501
+ is_split_parent: false
5502
+ split_parent_id: null
5503
+ is_group_parent: false
5504
+ group_parent_id: null
5300
5505
  manual_account_id: null
5301
5506
  plaid_account_id: 119804
5302
5507
  tag_ids: []
@@ -5315,10 +5520,10 @@ paths:
5315
5520
  is_pending: false
5316
5521
  created_at: "2024-07-22T17:00:06.192Z"
5317
5522
  updated_at: "2024-07-22T17:00:06.733Z"
5318
- is_parent: false
5319
- parent_id: null
5320
- is_group: false
5321
- group_id: null
5523
+ is_split_parent: false
5524
+ split_parent_id: null
5525
+ is_group_parent: false
5526
+ group_parent_id: null
5322
5527
  manual_account_id: 119807
5323
5528
  plaid_account_id: null
5324
5529
  tag_ids: []
@@ -5342,10 +5547,10 @@ paths:
5342
5547
  is_pending: false
5343
5548
  created_at: "2024-07-28T17:00:06.192Z"
5344
5549
  updated_at: "2024-07-28T17:00:06.733Z"
5345
- is_parent: false
5346
- parent_id: null
5347
- is_group: false
5348
- group_id: null
5550
+ is_split_parent: false
5551
+ split_parent_id: null
5552
+ is_group_parent: false
5553
+ group_parent_id: null
5349
5554
  manual_account_id: null
5350
5555
  plaid_account_id: 119806
5351
5556
  tag_ids:
@@ -5365,10 +5570,10 @@ paths:
5365
5570
  is_pending: false
5366
5571
  created_at: "2024-07-14T17:00:06.192Z"
5367
5572
  updated_at: "2024-07-14T17:00:06.733Z"
5368
- is_parent: false
5369
- parent_id: null
5370
- is_group: true
5371
- group_id: null
5573
+ is_split_parent: false
5574
+ split_parent_id: null
5575
+ is_group_parent: true
5576
+ group_parent_id: null
5372
5577
  manual_account_id: null
5373
5578
  plaid_account_id: 119806
5374
5579
  tag_ids:
@@ -5393,10 +5598,10 @@ paths:
5393
5598
  is_pending: false
5394
5599
  created_at: "2024-07-28T17:00:06.192Z"
5395
5600
  updated_at: "2024-07-28T17:00:06.733Z"
5396
- is_parent: false
5397
- parent_id: null
5398
- is_group: false
5399
- group_id: null
5601
+ is_split_parent: false
5602
+ split_parent_id: null
5603
+ is_group_parent: false
5604
+ group_parent_id: null
5400
5605
  manual_account_id: null
5401
5606
  plaid_account_id: 119806
5402
5607
  tag_ids:
@@ -5416,10 +5621,10 @@ paths:
5416
5621
  is_pending: false
5417
5622
  created_at: "2024-07-24T17:00:06.192Z"
5418
5623
  updated_at: "2024-07-24T17:00:06.192Z"
5419
- is_parent: false
5420
- parent_id: null
5421
- is_group: false
5422
- group_id: null
5624
+ is_split_parent: false
5625
+ split_parent_id: null
5626
+ is_group_parent: false
5627
+ group_parent_id: null
5423
5628
  manual_account_id: null
5424
5629
  plaid_account_id: 119805
5425
5630
  tag_ids:
@@ -5628,9 +5833,9 @@ paths:
5628
5833
  is_pending: false
5629
5834
  created_at: "2024-12-18T04:05:58.072Z"
5630
5835
  updated_at: "2024-12-18T04:05:58.072Z"
5631
- parent_id: null
5632
- is_group: false
5633
- group_id: null
5836
+ split_parent_id: null
5837
+ is_group_parent: false
5838
+ group_parent_id: null
5634
5839
  manual_account_id: null
5635
5840
  plaid_account_id: null
5636
5841
  tag_ids: []
@@ -5655,9 +5860,9 @@ paths:
5655
5860
  is_pending: false
5656
5861
  created_at: "2024-11-20T16:09:11.544Z"
5657
5862
  updated_at: "2024-11-20T16:09:11.544Z"
5658
- parent_id: null
5659
- is_group: false
5660
- group_id: null
5863
+ split_parent_id: null
5864
+ is_group_parent: false
5865
+ group_parent_id: null
5661
5866
  manual_account_id: null
5662
5867
  plaid_account_id: null
5663
5868
  tag_ids: []
@@ -5682,9 +5887,9 @@ paths:
5682
5887
  is_pending: false
5683
5888
  created_at: "2024-11-20T16:10:23.395Z"
5684
5889
  updated_at: "2024-11-20T16:10:23.395Z"
5685
- parent_id: null
5686
- is_group: false
5687
- group_id: null
5890
+ split_parent_id: null
5891
+ is_group_parent: false
5892
+ group_parent_id: null
5688
5893
  manual_account_id: null
5689
5894
  plaid_account_id: null
5690
5895
  tag_ids: []
@@ -5705,9 +5910,9 @@ paths:
5705
5910
  is_pending: false
5706
5911
  created_at: "2024-11-20T16:10:23.395Z"
5707
5912
  updated_at: "2024-11-20T16:10:23.395Z"
5708
- parent_id: null
5709
- is_group: false
5710
- group_id: null
5913
+ split_parent_id: null
5914
+ is_group_parent: false
5915
+ group_parent_id: null
5711
5916
  manual_account_id: null
5712
5917
  plaid_account_id: null
5713
5918
  tag_ids: []
@@ -5732,9 +5937,9 @@ paths:
5732
5937
  is_pending: false
5733
5938
  created_at: "2024-11-20T16:15:19.475Z"
5734
5939
  updated_at: "2024-11-20T16:15:19.475Z"
5735
- parent_id: null
5736
- is_group: false
5737
- group_id: null
5940
+ split_parent_id: null
5941
+ is_group_parent: false
5942
+ group_parent_id: null
5738
5943
  manual_account_id: 219807
5739
5944
  plaid_account_id: null
5740
5945
  tag_ids: []
@@ -5768,9 +5973,9 @@ paths:
5768
5973
  is_pending: false
5769
5974
  created_at: "2025-07-18T14:15:23.159Z"
5770
5975
  updated_at: "2025-07-18T14:15:23.159Z"
5771
- parent_id: null
5772
- is_group: false
5773
- group_id: null
5976
+ split_parent_id: null
5977
+ is_group_parent: false
5978
+ group_parent_id: null
5774
5979
  manual_account_id: 219807
5775
5980
  plaid_account_id: null
5776
5981
  tag_ids: []
@@ -5814,9 +6019,9 @@ paths:
5814
6019
  is_pending: false
5815
6020
  created_at: "2025-07-18T14:05:29.253Z"
5816
6021
  updated_at: "2025-07-18T14:05:29.253Z"
5817
- parent_id: null
5818
- is_group: false
5819
- group_id: null
6022
+ split_parent_id: null
6023
+ is_group_parent: false
6024
+ group_parent_id: null
5820
6025
  manual_account_id: 219807
5821
6026
  plaid_account_id: null
5822
6027
  tag_ids: []
@@ -5905,7 +6110,7 @@ paths:
5905
6110
  accepted in the request body, but their values will be ignored: `id`, `to_base`, `is_pending`, `created_at`, `updated_at`, `source`, and `plaid_metadata`.<br><br>
5906
6111
 
5907
6112
  Transactions that have been previously split or grouped may not be
5908
- modified by this endpoint. Therefore the `is_parent`, `parent_id`, `is_group`, `group_id`, and `children` properties are also ignored when provided in the request body.<br><br>
6113
+ modified by this endpoint. Therefore the `is_split_parent`, `split_parent_id`, `is_group_parent`, `group_parent_id`, and `children` properties are also ignored when provided in the request body.<br><br>
5909
6114
 
5910
6115
  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>
5911
6116
 
@@ -5965,10 +6170,10 @@ paths:
5965
6170
  is_pending: false
5966
6171
  created_at: "2025-07-17T17:00:06.192Z"
5967
6172
  updated_at: "2025-07-17T17:00:06.192Z"
5968
- is_parent: false
5969
- parent_id: null
5970
- is_group: false
5971
- group_id: null
6173
+ is_split_parent: false
6174
+ split_parent_id: null
6175
+ is_group_parent: false
6176
+ group_parent_id: null
5972
6177
  manual_account_id: null
5973
6178
  plaid_account_id: null
5974
6179
  tag_ids:
@@ -6029,10 +6234,10 @@ paths:
6029
6234
  is_pending: false
6030
6235
  created_at: "2025-06-24T17:00:06.192Z"
6031
6236
  updated_at: "2025-06-24T17:00:06.192Z"
6032
- is_parent: false
6033
- parent_id: null
6034
- is_group: false
6035
- group_id: null
6237
+ is_split_parent: false
6238
+ split_parent_id: null
6239
+ is_group_parent: false
6240
+ group_parent_id: null
6036
6241
  manual_account_id: null
6037
6242
  plaid_account_id: 119805
6038
6243
  tag_ids:
@@ -6053,10 +6258,10 @@ paths:
6053
6258
  is_pending: false
6054
6259
  created_at: "2025-06-18T17:00:06.192Z"
6055
6260
  updated_at: "2025-06-18T17:00:06.192Z"
6056
- is_parent: false
6057
- parent_id: null
6058
- is_group: false
6059
- group_id: null
6261
+ is_split_parent: false
6262
+ split_parent_id: null
6263
+ is_group_parent: false
6264
+ group_parent_id: null
6060
6265
  manual_account_id: null
6061
6266
  plaid_account_id: null
6062
6267
  tag_ids:
@@ -6077,10 +6282,10 @@ paths:
6077
6282
  is_pending: false
6078
6283
  created_at: "2025-06-12T17:00:06.192Z"
6079
6284
  updated_at: "2025-06-12T17:00:06.733Z"
6080
- is_parent: false
6081
- parent_id: null
6082
- is_group: false
6083
- group_id: null
6285
+ is_split_parent: false
6286
+ split_parent_id: null
6287
+ is_group_parent: false
6288
+ group_parent_id: null
6084
6289
  manual_account_id: null
6085
6290
  plaid_account_id: 119807
6086
6291
  tag_ids: []
@@ -6103,10 +6308,10 @@ paths:
6103
6308
  is_pending: false
6104
6309
  created_at: "2025-07-17T17:00:06.192Z"
6105
6310
  updated_at: "2025-07-17T17:00:06.192Z"
6106
- is_parent: false
6107
- parent_id: null
6108
- is_group: false
6109
- group_id: null
6311
+ is_split_parent: false
6312
+ split_parent_id: null
6313
+ is_group_parent: false
6314
+ group_parent_id: null
6110
6315
  manual_account_id: null
6111
6316
  plaid_account_id: null
6112
6317
  tag_ids:
@@ -6127,10 +6332,10 @@ paths:
6127
6332
  is_pending: false
6128
6333
  created_at: "2025-06-18T17:00:06.192Z"
6129
6334
  updated_at: "2025-06-18T17:00:06.192Z"
6130
- is_parent: false
6131
- parent_id: null
6132
- is_group: false
6133
- group_id: null
6335
+ is_split_parent: false
6336
+ split_parent_id: null
6337
+ is_group_parent: false
6338
+ group_parent_id: null
6134
6339
  manual_account_id: null
6135
6340
  plaid_account_id: null
6136
6341
  tag_ids:
@@ -6385,11 +6590,11 @@ paths:
6385
6590
  transaction.
6386
6591
 
6387
6592
 
6388
- If `is_group` is true in the returned transaction, the object will also
6593
+ If `is_group_parent` is true in the returned transaction, the object will also
6389
6594
  include the `children` property which will contain a list of the
6390
6595
  original transactions that make up the transaction group.<br>
6391
6596
 
6392
- If `is_parent` is true in the returned transaction, the object will also
6597
+ If `is_split_parent` is true in the returned transaction, the object will also
6393
6598
  include the `children` property which will contain a list
6394
6599
  of the split transactions.
6395
6600
  operationId: getTransactionById
@@ -6437,10 +6642,10 @@ paths:
6437
6642
  is_pending: false
6438
6643
  created_at: "2024-07-24T17:00:06.192Z"
6439
6644
  updated_at: "2024-07-24T17:00:06.192Z"
6440
- parent_id: null
6645
+ split_parent_id: null
6441
6646
  children: []
6442
- is_group: false
6443
- group_id: null
6647
+ is_group_parent: false
6648
+ group_parent_id: null
6444
6649
  manual_account_id: null
6445
6650
  plaid_account_id: 119805
6446
6651
  tag_ids: []
@@ -6461,10 +6666,10 @@ paths:
6461
6666
  is_pending: true
6462
6667
  created_at: "2025-05-28T17:00:06.192Z"
6463
6668
  updated_at: "2025-05-28T17:00:06.733Z"
6464
- is_parent: false
6465
- parent_id: null
6466
- is_group: false
6467
- group_id: null
6669
+ is_split_parent: false
6670
+ split_parent_id: null
6671
+ is_group_parent: false
6672
+ group_parent_id: null
6468
6673
  manual_account_id: null
6469
6674
  plaid_account_id: 119806
6470
6675
  tag_ids:
@@ -6498,9 +6703,9 @@ paths:
6498
6703
  is_pending: false
6499
6704
  created_at: "2025-05-17T17:00:06.192Z"
6500
6705
  updated_at: "2025-05-17T17:00:06.733Z"
6501
- parent_id: null
6502
- is_group: true
6503
- group_id: null
6706
+ split_parent_id: null
6707
+ is_group_parent: true
6708
+ group_parent_id: null
6504
6709
  manual_account_id: null
6505
6710
  plaid_account_id: null
6506
6711
  tag_ids:
@@ -6522,10 +6727,10 @@ paths:
6522
6727
  is_pending: false
6523
6728
  created_at: "2025-05-17T17:00:06.192Z"
6524
6729
  updated_at: "2025-05-17T17:00:06.733Z"
6525
- is_parent: false
6526
- parent_id: null
6527
- is_group: false
6528
- group_id: 2112140959
6730
+ is_split_parent: false
6731
+ split_parent_id: null
6732
+ is_group_parent: false
6733
+ group_parent_id: 2112140959
6529
6734
  manual_account_id: null
6530
6735
  plaid_account_id: null
6531
6736
  tag_ids:
@@ -6546,10 +6751,10 @@ paths:
6546
6751
  is_pending: false
6547
6752
  created_at: "2025-05-16T17:00:06.192Z"
6548
6753
  updated_at: "2025-05-16T17:00:06.192Z"
6549
- is_parent: false
6550
- parent_id: null
6551
- is_group: false
6552
- group_id: 2112140959
6754
+ is_split_parent: false
6755
+ split_parent_id: null
6756
+ is_group_parent: false
6757
+ group_parent_id: 2112140959
6553
6758
  manual_account_id: null
6554
6759
  plaid_account_id: null
6555
6760
  tag_ids:
@@ -6570,10 +6775,10 @@ paths:
6570
6775
  is_pending: false
6571
6776
  created_at: "2025-05-15T17:00:06.192Z"
6572
6777
  updated_at: "2025-05-15T17:00:06.733Z"
6573
- is_parent: false
6574
- parent_id: null
6575
- is_group: false
6576
- group_id: 2112140959
6778
+ is_split_parent: false
6779
+ split_parent_id: null
6780
+ is_group_parent: false
6781
+ group_parent_id: 2112140959
6577
6782
  manual_account_id: null
6578
6783
  plaid_account_id: 119805
6579
6784
  tag_ids:
@@ -6624,7 +6829,7 @@ paths:
6624
6829
  accepted in the request body but their values will be ignored: `id`, `to_base`, `is_pending`, `created_at`, `updated_at`, `source`, and `plaid_metadata`.<br><br>
6625
6830
 
6626
6831
  Transactions that have been previously split or grouped may not be
6627
- modified by this endpoint. Therefore the `is_parent`, `parent_id`, `is_group`, `group_id`, and `children` properties are also ignored when provided in the request body.<br><br>
6832
+ modified by this endpoint. Therefore the `is_split_parent`, `split_parent_id`, `is_group_parent`, `group_parent_id`, and `children` properties are also ignored when provided in the request body.<br><br>
6628
6833
 
6629
6834
  It is also possible to provide only the properties to be updated in the
6630
6835
  request body, as long as the request includes at least one of the
@@ -6679,10 +6884,10 @@ paths:
6679
6884
  is_pending: false
6680
6885
  created_at: "2024-12-09T17:00:06.192Z"
6681
6886
  updated_at: "2024-12-09T17:00:06.733Z"
6682
- is_parent: false
6683
- parent_id: null
6684
- is_group: false
6685
- group_id: null
6887
+ is_split_parent: false
6888
+ split_parent_id: null
6889
+ is_group_parent: false
6890
+ group_parent_id: null
6686
6891
  manual_account_id: null
6687
6892
  plaid_account_id: 119810
6688
6893
  tag_ids: []
@@ -6711,10 +6916,10 @@ paths:
6711
6916
  is_pending: false
6712
6917
  created_at: "2024-12-09T17:00:06.192Z"
6713
6918
  updated_at: "2024-12-09T17:00:06.733Z"
6714
- is_parent: false
6715
- parent_id: null
6716
- is_group: false
6717
- group_id: null
6919
+ is_split_parent: false
6920
+ split_parent_id: null
6921
+ is_group_parent: false
6922
+ group_parent_id: null
6718
6923
  manual_account_id: null
6719
6924
  plaid_account_id: 119810
6720
6925
  tag_ids: []
@@ -6934,9 +7139,9 @@ paths:
6934
7139
  is_pending: false
6935
7140
  created_at: "2024-12-18T14:45:03.366Z"
6936
7141
  updated_at: "2024-12-18T14:45:03.366Z"
6937
- parent_id: null
6938
- is_group: true
6939
- group_id: null
7142
+ split_parent_id: null
7143
+ is_group_parent: true
7144
+ group_parent_id: null
6940
7145
  manual_account_id: null
6941
7146
  plaid_account_id: null
6942
7147
  tag_ids: []
@@ -6957,10 +7162,10 @@ paths:
6957
7162
  is_pending: false
6958
7163
  created_at: "2024-11-10T17:00:06.192Z"
6959
7164
  updated_at: "2024-11-10T17:00:06.733Z"
6960
- is_parent: false
6961
- parent_id: null
6962
- is_group: false
6963
- group_id: 123456789
7165
+ is_split_parent: false
7166
+ split_parent_id: null
7167
+ is_group_parent: false
7168
+ group_parent_id: 123456789
6964
7169
  manual_account_id: null
6965
7170
  plaid_account_id: 119809
6966
7171
  tag_ids: []
@@ -6979,10 +7184,10 @@ paths:
6979
7184
  is_pending: false
6980
7185
  created_at: "2024-11-09T17:00:06.192Z"
6981
7186
  updated_at: "2024-11-09T17:00:06.733Z"
6982
- is_parent: false
6983
- parent_id: null
6984
- is_group: false
6985
- group_id: 123456789
7187
+ is_split_parent: false
7188
+ split_parent_id: null
7189
+ is_group_parent: false
7190
+ group_parent_id: 123456789
6986
7191
  manual_account_id: null
6987
7192
  plaid_account_id: 119810
6988
7193
  tag_ids: []
@@ -7004,9 +7209,9 @@ paths:
7004
7209
  is_pending: false
7005
7210
  created_at: "2025-11-13T21:39:27.609Z"
7006
7211
  updated_at: "2025-11-13T21:39:27.609Z"
7007
- parent_id: null
7008
- is_group: true
7009
- group_id: null
7212
+ split_parent_id: null
7213
+ is_group_parent: true
7214
+ group_parent_id: null
7010
7215
  manual_account_id: null
7011
7216
  plaid_account_id: null
7012
7217
  tag_ids: [94318]
@@ -7027,10 +7232,10 @@ paths:
7027
7232
  is_pending: false
7028
7233
  created_at: "2025-10-22T17:00:06.192Z"
7029
7234
  updated_at: "2025-10-22T17:00:06.733Z"
7030
- is_parent: false
7031
- parent_id: null
7032
- is_group: false
7033
- group_id: 123456789
7235
+ is_split_parent: false
7236
+ split_parent_id: null
7237
+ is_group_parent: false
7238
+ group_parent_id: 123456789
7034
7239
  manual_account_id: null
7035
7240
  plaid_account_id: 119804
7036
7241
  tag_ids: []
@@ -7050,10 +7255,10 @@ paths:
7050
7255
  is_pending: false
7051
7256
  created_at: "2025-10-21T17:00:06.192Z"
7052
7257
  updated_at: "2025-10-21T17:00:06.733Z"
7053
- is_parent: false
7054
- parent_id: null
7055
- is_group: false
7056
- group_id: 123456789
7258
+ is_split_parent: false
7259
+ split_parent_id: null
7260
+ is_group_parent: false
7261
+ group_parent_id: 123456789
7057
7262
  manual_account_id: null
7058
7263
  plaid_account_id: 119806
7059
7264
  tag_ids: []
@@ -7105,7 +7310,7 @@ paths:
7105
7310
  - errMsg: "Transaction with id 2112150647 is in a transaction group already and cannot be added to another transaction group."
7106
7311
  ids_index: 1
7107
7312
  id: 2112150647
7108
- group_id: 2112140959
7313
+ group_parent_id: 2112140959
7109
7314
  recurring transactions:
7110
7315
  value:
7111
7316
  message: Request Validation Failure
@@ -7181,7 +7386,7 @@ paths:
7181
7386
 
7182
7387
  To see the details of the original parent transaction after it has been
7183
7388
  split, use the `GET /transactions/{id}` endpoint and pass the value of
7184
- the `parent_id` of one of the children.
7389
+ the `split_parent_id` of one of the children.
7185
7390
  operationId: splitTransaction
7186
7391
  parameters:
7187
7392
  - name: id
@@ -7257,10 +7462,10 @@ paths:
7257
7462
  is_pending: false
7258
7463
  created_at: "2024-10-19T17:00:06.192Z"
7259
7464
  updated_at: "2024-11-30T22:25:53.232Z"
7260
- parent_id: null
7261
- is_parent: true
7262
- is_group: false
7263
- group_id: null
7465
+ split_parent_id: null
7466
+ is_split_parent: true
7467
+ is_group_parent: false
7468
+ group_parent_id: null
7264
7469
  manual_account_id: null
7265
7470
  plaid_account_id: 119805
7266
7471
  tag_ids: []
@@ -7280,10 +7485,10 @@ paths:
7280
7485
  is_pending: false
7281
7486
  created_at: "2024-11-30T22:25:53.232Z"
7282
7487
  updated_at: "2024-11-30T22:25:53.232Z"
7283
- is_parent: false
7284
- parent_id: null
7285
- is_group: false
7286
- group_id: null
7488
+ is_split_parent: false
7489
+ split_parent_id: null
7490
+ is_group_parent: false
7491
+ group_parent_id: null
7287
7492
  manual_account_id: null
7288
7493
  plaid_account_id: 119805
7289
7494
  tag_ids: []
@@ -7302,10 +7507,10 @@ paths:
7302
7507
  is_pending: false
7303
7508
  created_at: "2024-11-30T22:25:53.232Z"
7304
7509
  updated_at: "2024-11-30T22:25:53.232Z"
7305
- is_parent: false
7306
- parent_id: null
7307
- is_group: false
7308
- group_id: null
7510
+ is_split_parent: false
7511
+ split_parent_id: null
7512
+ is_group_parent: false
7513
+ group_parent_id: null
7309
7514
  manual_account_id: null
7310
7515
  plaid_account_id: 119805
7311
7516
  tag_ids: []
@@ -7380,7 +7585,7 @@ paths:
7380
7585
  Deletes the split children of a previously split transactions and
7381
7586
  restores the parent transactions to the normal unsplit state.<br><br>
7382
7587
 
7383
- Use the value of the `parent_id`property of a split transaction to
7588
+ Use the value of the `split_parent_id`property of a split transaction to
7384
7589
  specify the parent ID.
7385
7590
  operationId: unsplitTransaction
7386
7591
  parameters: