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

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,13 @@ 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.5
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
51
+ - url: https://alpha.lunchmoney.dev/v2
57
52
  description: Static Mock v2 Lunch Money API Server
58
53
 
59
54
  tags:
@@ -162,17 +157,17 @@ components:
162
157
  type: integer
163
158
  format: int32
164
159
  nullable: false
165
- description: A system defined unique identifier for the category.
160
+ description: A system defined unique identifier for the category
166
161
  name:
167
162
  type: string
168
163
  nullable: false
169
- description: The name of the category.
164
+ description: The name of the category
170
165
  minLength: 1
171
166
  maxLength: 100
172
167
  description:
173
168
  type: string
174
169
  nullable: true
175
- description: The description of the category or `null` if not set.
170
+ description: The description of the category or `null` if not set
176
171
  maxLength: 200
177
172
  is_income:
178
173
  type: boolean
@@ -209,7 +204,7 @@ components:
209
204
  group.
210
205
  is_group:
211
206
  type: boolean
212
- description: If `true`, the category is created as a category group.
207
+ description: If `true`, the category is created as a category group
213
208
  children:
214
209
  type: array
215
210
  items:
@@ -244,7 +239,7 @@ components:
244
239
  type: boolean
245
240
  nullable: false
246
241
  default: false
247
- description: If `true`, the category is collapsed in the Lunch Money GUI.
242
+ description: If `true`, the category is collapsed in the Lunch Money GUI
248
243
  required:
249
244
  - id
250
245
  - name
@@ -273,17 +268,17 @@ components:
273
268
  type: integer
274
269
  format: int32
275
270
  nullable: false
276
- description: A system defined unique identifier for the category.
271
+ description: A system defined unique identifier for the category
277
272
  name:
278
273
  type: string
279
274
  nullable: false
280
- description: The name of the category.
275
+ description: The name of the category
281
276
  minLength: 1
282
277
  maxLength: 100
283
278
  description:
284
279
  type: string
285
280
  nullable: true
286
- description: The description of the category or `null` if not set.
281
+ description: The description of the category or `null` if not set
287
282
  maxLength: 200
288
283
  is_income:
289
284
  type: boolean
@@ -323,7 +318,7 @@ components:
323
318
  type: boolean
324
319
  enum:
325
320
  - false
326
- description: Will always be false for a category that is part of category group.
321
+ description: Will always be false for a category that is part of category group
327
322
  archived:
328
323
  type: boolean
329
324
  description: If true, the category is archived and not displayed in relevant
@@ -344,8 +339,8 @@ components:
344
339
  API.
345
340
  collapsed:
346
341
  type: boolean
347
- nullable: true
348
- description: If `true`, the category is collapsed in the Lunch Money GUI.
342
+ nullable: false
343
+ description: Always `false` for a child category. Child categories cannot be collapsed.
349
344
  required:
350
345
  - id
351
346
  - name
@@ -360,6 +355,7 @@ components:
360
355
  - archived
361
356
  - archived_at
362
357
  - order
358
+ - collapsed
363
359
 
364
360
  # The request object for POST /categories
365
361
  # Prevent user from submitting any system created fields in a POST request
@@ -407,7 +403,7 @@ components:
407
403
  type: boolean
408
404
  nullable: false
409
405
  default: false
410
- description: If `true`, the category is created as a category group.
406
+ description: If `true`, the category is created as a category group
411
407
  group_id:
412
408
  type: integer
413
409
  format: int64
@@ -453,7 +449,8 @@ components:
453
449
  collapsed:
454
450
  type: boolean
455
451
  nullable: true
456
- 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.
452
+ description: >-
453
+ If `true`, the category group is collapsed in the Lunch Money GUI. This property can only be set to `true` for category groups (`is_group: true`). While this property can be set via the API, it is generally set by the user in the Lunch Money GUI.
457
454
  required:
458
455
  - name
459
456
 
@@ -472,6 +469,7 @@ components:
472
469
  characters.
473
470
  minLength: 1
474
471
  maxLength: 100
472
+ x-updatable: true
475
473
  description:
476
474
  type: string
477
475
  nullable: true
@@ -479,21 +477,26 @@ components:
479
477
  characters.
480
478
  minLength: 0 # Allow empty strings
481
479
  maxLength: 200
480
+ x-updatable: true
482
481
  is_income:
483
482
  type: boolean
484
483
  nullable: false
485
484
  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)
485
+ x-updatable: true
486
486
  exclude_from_budget:
487
487
  type: boolean
488
488
  nullable: false
489
489
  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)
490
+ x-updatable: true
490
491
  exclude_from_totals:
491
492
  type: boolean
492
493
  nullable: false
493
494
  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)
495
+ x-updatable: true
494
496
  archived:
495
497
  type: boolean
496
- description: If set, will indicate if this category is archived.
498
+ description: If set, will indicate if this category is archived
499
+ x-updatable: true
497
500
  group_id:
498
501
  type: integer
499
502
  format: int64
@@ -501,6 +504,7 @@ components:
501
504
  description: If set to the ID of an existing category group, and this category
502
505
  is not itself a category group, this category will be a child of the
503
506
  specified group.
507
+ x-updatable: true
504
508
  is_group:
505
509
  type: boolean
506
510
  nullable: true
@@ -523,6 +527,7 @@ components:
523
527
  any names are the same as the name of an existing category.<br> It
524
528
  is permissible to provide both full category objects and IDs as well
525
529
  as strings for names in the same request.
530
+ x-updatable: true
526
531
  items:
527
532
  oneOf:
528
533
  - type: integer
@@ -539,25 +544,31 @@ components:
539
544
  a category group the order is relative to the other categories
540
545
  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
546
  API.
547
+ x-updatable: true
542
548
  collapsed:
543
549
  type: boolean
544
550
  nullable: true
545
- 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.
551
+ description: >-
552
+ If `true`, the category group is collapsed in the Lunch Money GUI. This property can only be set to `true` for category groups (`is_group: true`). While this property can be set via the API, it is generally set by the user in the Lunch Money GUI.
553
+ x-updatable: true
546
554
  id:
547
555
  type: integer
548
556
  format: int64
549
- description: System defined unique identifier for the category. Ignored if set.
557
+ description: System defined unique identifier for the category. Ignored if set
558
+ x-updatable: false
550
559
  archived_at:
551
560
  type: string
552
561
  nullable: true
553
562
  description: System set date and time of when the category was last archived (in
554
563
  the ISO 8601 extended format). Ignored if set.
564
+ x-updatable: false
555
565
  updated_at:
556
566
  type: string
557
567
  format: date-time
558
568
  nullable: false
559
569
  description: System set date and time of when the category was last updated (in
560
570
  the ISO 8601 extended format). Ignored if set.
571
+ x-updatable: false
561
572
  created_at:
562
573
  type: string
563
574
  format: date-time
@@ -565,6 +576,7 @@ components:
565
576
  description: System set date and time of when the category was created (in the
566
577
  ISO 8601 extended format). Ignored if set. (in the ISO 8601 extended
567
578
  format). Ignored if set.
579
+ x-updatable: false
568
580
 
569
581
  # The response object for a DELETE /category request with dependencies
570
582
  deleteCategoryResponseWithDependencies:
@@ -652,6 +664,12 @@ components:
652
664
  displayed in payee field on the transactions page in the GUI.
653
665
  minLength: 0
654
666
  maxLength: 140
667
+ original_name:
668
+ type: string
669
+ nullable: true
670
+ description: Original payee name from the source (financial institution, CSV, etc.). For Plaid transactions, this is the raw name before normalization. For manual/API transactions, this typically matches `payee`. May be null for older transactions.
671
+ minLength: 0
672
+ maxLength: 140
655
673
  category_id:
656
674
  type: integer
657
675
  format: int32
@@ -751,26 +769,26 @@ components:
751
769
  format: date-time
752
770
  description: The date and time of when the transaction was last updated (in the
753
771
  ISO 8601 extended format).
754
- is_parent:
772
+ is_split_parent:
755
773
  type: boolean
756
774
  description: If `true`, this transaction has been split into two or more other
757
775
  transactions. By default, parent transactions are not returned in
758
776
  call to `GET /transactions` but they can be queried directly by
759
777
  their ID.
760
- parent_id:
778
+ split_parent_id:
761
779
  type: integer
762
780
  format: int64
763
781
  nullable: true
764
782
  description: A transaction ID if this is a split transaction. Denotes the
765
783
  transaction ID of the original, or parent, transaction. Is null if
766
784
  this is not a split transaction
767
- is_group:
785
+ is_group_parent:
768
786
  type: boolean
769
787
  description: "`true` if this transaction represents a group of transactions. If so,
770
788
  amount and currency represent the totalled amount of transactions
771
- bearing this transaction's id as their group_id. Amount is
789
+ bearing this transaction's id as their group_parent_id. Amount is
772
790
  calculated based on the user's primary currency."
773
- group_id:
791
+ group_parent_id:
774
792
  type: integer
775
793
  format: int64
776
794
  nullable: true
@@ -779,7 +797,7 @@ components:
779
797
  transactions that were grouped are not returned in a call to `GET
780
798
  /transactions` but they can be queried directly by calling the `GET
781
799
  /transactions/group/{id}`, where the id passed is associated with a
782
- transaction where the `is_group` attribute is true
800
+ transaction where the `is_group_parent` attribute is true
783
801
  children:
784
802
  type: array
785
803
  nullable: false
@@ -790,8 +808,8 @@ components:
790
808
  unless the `include_children` query parameter is set to `true`.<br>
791
809
  For parents of split transactions, it contains a list of the associated
792
810
  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.
811
+ the transactions that were grouped together. Examine the `is_split_parent` and
812
+ `is_group_parent` properties to determine which of these it is.
795
813
  plaid_metadata:
796
814
  type: object
797
815
  nullable: true
@@ -809,7 +827,7 @@ components:
809
827
  files:
810
828
  type: array
811
829
  nullable: false
812
- description: A list of objects that describe any attachments to the Transactions.
830
+ description: A list of objects that describe any attachments to the Transactions
813
831
  This is only present when the `include_files` query parameter is set to true.
814
832
  items:
815
833
  $ref: "#/components/schemas/transactionAttachmentObject"
@@ -866,9 +884,9 @@ components:
866
884
  - is_pending
867
885
  - created_at
868
886
  - updated_at
869
- - parent_id
870
- - is_group
871
- - group_id
887
+ - split_parent_id
888
+ - is_group_parent
889
+ - group_parent_id
872
890
  - manual_account_id
873
891
  - plaid_account_id
874
892
  - tag_ids
@@ -894,7 +912,7 @@ components:
894
912
  amount:
895
913
  type: string
896
914
  description: Amount of the transaction in numeric format to 4 decimal places.
897
- Positive values indicate a debit transaction, negative values indicate a credit transaction.
915
+ Positive values indicate a debit transaction, negative values indicate a credit transaction
898
916
  currency:
899
917
  description: Three-letter lowercase currency code of the transaction in ISO 4217
900
918
  format
@@ -920,6 +938,12 @@ components:
920
938
  displayed in payee field on the transactions page in the GUI.
921
939
  minLength: 0
922
940
  maxLength: 140
941
+ original_name:
942
+ type: string
943
+ nullable: true
944
+ description: Original payee name from the source (financial institution, CSV, etc.). For Plaid transactions, this is the raw name before normalization. For manual/API transactions, this typically matches `payee`. May be null for older transactions.
945
+ minLength: 0
946
+ maxLength: 140
923
947
  category_id:
924
948
  type: integer
925
949
  format: int32
@@ -977,26 +1001,26 @@ components:
977
1001
  format: date-time
978
1002
  description: The date and time of when the transaction was last updated (in the
979
1003
  ISO 8601 extended format).
980
- is_parent:
1004
+ is_split_parent:
981
1005
  type: boolean
982
1006
  description: If true this transaction has been split into two or more other
983
1007
  transactions. By default parent transactions are not returned in
984
1008
  call to `GET /transactions` but they can be queried directly by
985
1009
  their ID.
986
- parent_id:
1010
+ split_parent_id:
987
1011
  type: integer
988
1012
  format: int64
989
1013
  nullable: true
990
1014
  description: A transaction ID if this is a split transaction. Denotes the
991
1015
  transaction ID of the original, or parent, transaction. Is null if
992
1016
  this is not a split transaction
993
- is_group:
1017
+ is_group_parent:
994
1018
  type: boolean
995
1019
  description: True if this transaction represents a group of transactions. If so,
996
1020
  amount and currency represent the totalled amount of transactions
997
- bearing this transaction's id as their group_id. Amount is
1021
+ bearing this transaction's id as their group_parent_id. Amount is
998
1022
  calculated based on the user's primary currency.
999
- group_id:
1023
+ group_parent_id:
1000
1024
  type: integer
1001
1025
  format: int64
1002
1026
  nullable: true
@@ -1005,7 +1029,7 @@ components:
1005
1029
  transactions that were grouped are not returned in a call to `GET
1006
1030
  /transactions` but they can be queried directly by calling the `GET
1007
1031
  /transactions/group/{id}`, where the id passed is associated with a
1008
- transaction where the `is_group` attribute is true
1032
+ transaction where the `is_group_parent` attribute is true
1009
1033
  manual_account_id:
1010
1034
  type: integer
1011
1035
  format: int32
@@ -1119,9 +1143,9 @@ components:
1119
1143
  - is_pending
1120
1144
  - created_at
1121
1145
  - updated_at
1122
- - parent_id
1123
- - is_group
1124
- - group_id
1146
+ - split_parent_id
1147
+ - is_group_parent
1148
+ - group_parent_id
1125
1149
  - manual_account_id
1126
1150
  - plaid_account_id
1127
1151
  - tag_ids
@@ -1150,13 +1174,19 @@ components:
1150
1174
  Positive values indicate a debit transaction, negative values indicate a credit transaction.
1151
1175
  currency:
1152
1176
  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
1177
+ format. Must match one of the [supported currencies](https://alpha.lunchmoney.dev/v2/currencies). If not set
1154
1178
  defaults to the user account's primary currency.
1155
1179
  allOf:
1156
1180
  - $ref: "#/components/schemas/currencyEnum"
1157
1181
  payee:
1158
1182
  type: string
1159
- description: Name of payee for the transaction.
1183
+ description: Name of payee for the transaction
1184
+ minLength: 0
1185
+ maxLength: 140
1186
+ original_name:
1187
+ type: string
1188
+ nullable: true
1189
+ description: Original payee name. If not provided, defaults to `payee` value.
1160
1190
  minLength: 0
1161
1191
  maxLength: 140
1162
1192
  category_id:
@@ -1179,7 +1209,7 @@ components:
1179
1209
  type: integer
1180
1210
  format: int32
1181
1211
  nullable: true
1182
- description: The Unique identifier for the associated manually managed account.
1212
+ description: The unique identifier for the associated manually managed account
1183
1213
  If set, this must match an existing manual account id associated
1184
1214
  with the user's account. If not set, and `plaid_account_id` is also
1185
1215
  not set, no account is associated with the transaction and it will
@@ -1252,11 +1282,13 @@ components:
1252
1282
  id:
1253
1283
  type: integer
1254
1284
  format: int64
1255
- description: System defined unique identifier of this transaction. Ignored if set.
1285
+ description: System defined unique identifier of this transaction. Ignored if set
1286
+ x-updatable: false
1256
1287
  date:
1257
1288
  type: string
1258
1289
  format: date
1259
1290
  description: Date of transaction in ISO 8601 format
1291
+ x-updatable: true
1260
1292
  amount:
1261
1293
  oneOf:
1262
1294
  - type: number
@@ -1269,11 +1301,13 @@ components:
1269
1301
  <br>
1270
1302
  May not be updated on transactions that belong to a synced account
1271
1303
  with the "Allow Modifications to Transactions" property disabled.
1304
+ x-updatable: true
1272
1305
  currency:
1273
1306
  description: Three-letter lowercase currency code of the transaction in ISO 4217
1274
1307
  format.<br> May not be updated on transactions that belong to a
1275
1308
  synced account with the "Allow Modifications to Transactions"
1276
1309
  property disabled.
1310
+ x-updatable: true
1277
1311
  allOf:
1278
1312
  - $ref: "#/components/schemas/currencyEnum"
1279
1313
  recurring_id:
@@ -1282,18 +1316,28 @@ components:
1282
1316
  nullable: true
1283
1317
  description: The unique identifier of the associated recurring item that this
1284
1318
  transaction matches.
1319
+ x-updatable: true
1285
1320
  payee:
1286
1321
  type: string
1287
1322
  description: |
1288
1323
  The new payee for the transaction.
1289
1324
  minLength: 0
1290
1325
  maxLength: 140
1326
+ x-updatable: true
1327
+ original_name:
1328
+ type: string
1329
+ nullable: true
1330
+ description: Original payee name. Cannot be changed. Ignored if set.
1331
+ minLength: 0
1332
+ maxLength: 140
1333
+ x-updatable: false
1291
1334
  category_id:
1292
1335
  type: integer
1293
1336
  format: int32
1294
1337
  nullable: true
1295
1338
  description: Unique identifier of the category for this transaction. Set this to
1296
1339
  null to clear the transaction's category.
1340
+ x-updatable: true
1297
1341
  notes:
1298
1342
  type: string
1299
1343
  nullable: true
@@ -1302,6 +1346,7 @@ components:
1302
1346
  the existing notes.
1303
1347
  minLength: 0
1304
1348
  maxLength: 350
1349
+ x-updatable: true
1305
1350
  manual_account_id:
1306
1351
  type: integer
1307
1352
  format: int32
@@ -1312,6 +1357,7 @@ components:
1312
1357
  null value. Moving an existing transaction to to another account
1313
1358
  will not work if the transaction belongs to a synced account who's
1314
1359
  "Allow Modifications to Transactions" property is not set.
1360
+ x-updatable: true
1315
1361
  plaid_account_id:
1316
1362
  type: integer
1317
1363
  format: int32
@@ -1322,6 +1368,7 @@ components:
1322
1368
  account will not work if the account's "Allow Modifications to
1323
1369
  Transactions" property is not set. Similarly, this cannot be set to an
1324
1370
  id associated with this type of locked Plaid account.
1371
+ x-updatable: true
1325
1372
  tag_ids:
1326
1373
  type: array
1327
1374
  nullable: false
@@ -1330,6 +1377,7 @@ components:
1330
1377
  `additional_tag_ids` to add tags to the existing transaction's tags.
1331
1378
  Set this to an empty array to remove all tags from a transaction. If
1332
1379
  set `additional_tag_ids` may not be set.
1380
+ x-updatable: true
1333
1381
  items:
1334
1382
  type: integer
1335
1383
  format: int32
@@ -1340,6 +1388,7 @@ components:
1340
1388
  set, the tags listed in this property be added to any existing
1341
1389
  transaction tags. Use `tag_ids` to overwrite or clear transaction
1342
1390
  tags. If set `tag_ids` may not be set.
1391
+ x-updatable: true
1343
1392
  items:
1344
1393
  type: integer
1345
1394
  format: int32
@@ -1352,10 +1401,12 @@ components:
1352
1401
  `manual_account_id`/`external_id` combination.
1353
1402
  minLength: 0
1354
1403
  maxLength: 75
1404
+ x-updatable: true
1355
1405
  custom_metadata:
1356
1406
  type: object
1357
1407
  nullable: true
1358
- description: User defined JSON data that can be set or cleared via the API.
1408
+ description: User defined JSON data that can be set or cleared via the API
1409
+ x-updatable: true
1359
1410
  status:
1360
1411
  type: string
1361
1412
  description: >
@@ -1370,33 +1421,40 @@ components:
1370
1421
  enum:
1371
1422
  - reviewed
1372
1423
  - unreviewed
1424
+ x-updatable: true
1373
1425
  to_base:
1374
1426
  type: number
1375
1427
  format: double
1376
1428
  description: System defined amount of this transaction in the user's primary
1377
- currency. Ignored if set.
1429
+ currency. Ignored if set. Use `amount` to update the amount in the transaction.
1430
+ x-updatable: false
1378
1431
  is_pending:
1379
1432
  type: boolean
1380
- description: System defined flag set for pending transactions. Ignored if set.
1433
+ description: System defined flag set for pending transactions. Ignored if set
1434
+ x-updatable: false
1381
1435
  plaid_metadata:
1382
1436
  type: object
1383
1437
  nullable: true
1384
- description: System set metadata from a Plaid account sync. Ignored if set.
1438
+ description: System set metadata from a Plaid account sync. Ignored if set
1439
+ x-updatable: false
1385
1440
  created_at:
1386
1441
  type: string
1387
1442
  format: date-time
1388
- description: System defined date and time of when the transaction was created.
1443
+ description: System defined date and time of when the transaction was created
1389
1444
  Ignored if set.
1445
+ x-updatable: false
1390
1446
  updated_at:
1391
1447
  type: string
1392
1448
  format: date-time
1393
1449
  description: System defined date and time of when the transaction was last
1394
1450
  updated. Ignored if set.
1395
- is_parent:
1451
+ x-updatable: false
1452
+ is_split_parent:
1396
1453
  type: boolean
1397
- description: System defined boolean indicating if this transaction was split.
1454
+ description: System defined boolean indicating if this transaction was split
1398
1455
  To split or unsplit a transaction use the
1399
- `/transactions/split` endpoint. Ignored if set.
1456
+ `/transactions/split` endpoint. Ignored if set.
1457
+ x-updatable: false
1400
1458
  children:
1401
1459
  type: array
1402
1460
  nullable: false
@@ -1404,28 +1462,33 @@ components:
1404
1462
  $ref: "#/components/schemas/childTransactionObject"
1405
1463
  description: An array of child transactions that exists when a transaction has
1406
1464
  been split or if the transaction is a group. Split
1465
+ x-updatable: false
1407
1466
  and Grouped transactions may not be modified using this API. Ignored if set.
1408
- parent_id:
1467
+ split_parent_id:
1409
1468
  type: integer
1410
1469
  format: int64
1411
1470
  nullable: true
1412
1471
  description: A transaction ID if this is a split transaction. Split
1413
1472
  transactions may not be modified this API. Use the
1414
- `transactions/split` endpoint instead. Ignored if set.
1415
- is_group:
1473
+ `transactions/split` endpoint instead. Ignored if set.
1474
+ x-updatable: false
1475
+ is_group_parent:
1416
1476
  type: boolean
1417
1477
  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:
1478
+ group of transactions. Grouped transactions may not be modified with this API. Use the `transactions/group` endpoint instead. Ignored if set.
1479
+ x-updatable: false
1480
+ group_parent_id:
1420
1481
  type: integer
1421
1482
  format: int64
1422
1483
  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.
1484
+ 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.
1485
+ x-updatable: false
1424
1486
  source:
1425
1487
  type: string
1426
1488
  nullable: true
1427
1489
  description: |
1428
1490
  System defined original source of the transaction. Ignored if set.
1491
+ x-updatable: false
1429
1492
  enum:
1430
1493
  - api
1431
1494
  - csv
@@ -1472,7 +1535,7 @@ components:
1472
1535
  notes:
1473
1536
  type: string
1474
1537
  maxLength: 350
1475
- description: Will inherit notes from parent if not defined.
1538
+ description: Will inherit notes from parent if not defined
1476
1539
  required:
1477
1540
  - amount
1478
1541
 
@@ -1512,7 +1575,7 @@ components:
1512
1575
  duplicates.
1513
1576
  request_transaction:
1514
1577
  type: object
1515
- description: The requested transaction that was skipped.
1578
+ description: The requested transaction that was skipped
1516
1579
  allOf:
1517
1580
  - $ref: "#/components/schemas/insertTransactionObject"
1518
1581
 
@@ -1523,7 +1586,7 @@ components:
1523
1586
  description: The object returned from a successful POST /transactions request
1524
1587
  properties:
1525
1588
  transactions:
1526
- description: An array of the inserted transactions.
1589
+ description: An array of the inserted transactions
1527
1590
  items:
1528
1591
  $ref: "#/components/schemas/transactionObject"
1529
1592
  type: array
@@ -1584,6 +1647,16 @@ components:
1584
1647
  description: Name of the account
1585
1648
  minLength: 1
1586
1649
  maxLength: 45
1650
+ institution_name:
1651
+ type: string
1652
+ nullable: true
1653
+ minLength: 1
1654
+ maxLength: 50
1655
+ description: Name of institution holding the account
1656
+ display_name:
1657
+ type: string
1658
+ nullable: true
1659
+ description: Optional display name for the account as set by the user or derived from the `institution_name` and `name` if not explicitly set.
1587
1660
  type:
1588
1661
  description: Primary type of the account
1589
1662
  allOf:
@@ -1595,14 +1668,10 @@ components:
1595
1668
  checking - savings - prepaid credit card
1596
1669
  minLength: 1
1597
1670
  maxLength: 100
1598
- display_name:
1599
- type: string
1600
- nullable: true
1601
- description: Optional display name for the account set by the user
1602
1671
  balance:
1603
1672
  type: string
1604
1673
  pattern: ^-?\d+(\.\d{1,4})?$
1605
- description: Current balance of the account in numeric format to 4 decimal places.
1674
+ description: Current balance of the account in numeric format to 4 decimal places
1606
1675
  currency:
1607
1676
  type: string
1608
1677
  minLength: 3
@@ -1615,18 +1684,18 @@ components:
1615
1684
  type: string
1616
1685
  format: date-time
1617
1686
  description: Date balance was last updated in ISO 8601 extended format, can be in date or date-time format
1687
+ status:
1688
+ type: string
1689
+ description: The status of the account
1690
+ enum:
1691
+ - active
1692
+ - closed
1618
1693
  closed_on:
1619
1694
  type: string
1620
1695
  format: date
1621
1696
  nullable: true
1622
- description: The date this account was closed. Will be null if the account has
1623
- not been marked as closed
1624
- institution_name:
1625
- type: string
1626
- nullable: true
1627
- minLength: 1
1628
- maxLength: 50
1629
- description: Name of institution holding the account
1697
+ description: The date this account was closed in YYYY-MM-DD format. Will be null if the account has
1698
+ not been marked as closed.
1630
1699
  external_id:
1631
1700
  type: string
1632
1701
  nullable: true
@@ -1636,13 +1705,16 @@ components:
1636
1705
  custom_metadata:
1637
1706
  type: object
1638
1707
  nullable: true
1639
- description: User defined JSON data that can be set or cleared via the API.
1708
+ description: User defined JSON data that can be set or cleared via the API
1640
1709
  additionalProperties: true
1641
1710
  exclude_from_transactions:
1642
1711
  type: boolean
1643
1712
  default: false
1644
1713
  description: If true, this account will not show up as an option for assignment
1645
1714
  when creating transactions manually
1715
+ created_by_name:
1716
+ type: string
1717
+ description: The name of the user who created the account
1646
1718
  created_at:
1647
1719
  type: string
1648
1720
  format: date-time
@@ -1665,8 +1737,10 @@ components:
1665
1737
  - institution_name
1666
1738
  - external_id
1667
1739
  - exclude_from_transactions
1740
+ - created_by_name
1668
1741
  - created_at
1669
1742
  - updated_at
1743
+ - status
1670
1744
 
1671
1745
  # The object that may be submitted to POST /manual_accounts
1672
1746
  createManualAccountRequestObject:
@@ -1680,8 +1754,19 @@ components:
1680
1754
  minLength: 1
1681
1755
  maxLength: 45
1682
1756
  example: My Savings Account
1757
+ institution_name:
1758
+ type: string
1759
+ example: Bank of the West
1760
+ description: Name of institution holding the manual account
1761
+ minLength: 1
1762
+ maxLength: 50
1763
+ display_name:
1764
+ type: string
1765
+ description: Display name of the manual account as set by user or derived from the `institution_name` and `name` if not explicitly set.<br>
1766
+ This must be unique for the budgeting account.
1767
+ example: Savings
1683
1768
  type:
1684
- description: The type of manual account.
1769
+ description: The type of manual account
1685
1770
  allOf:
1686
1771
  - $ref: "#/components/schemas/accountTypeEnum"
1687
1772
  subtype:
@@ -1691,11 +1776,6 @@ components:
1691
1776
  minLength: 1
1692
1777
  maxLength: 100
1693
1778
  example: prepaid credit card
1694
- display_name:
1695
- type: string
1696
- description: Display name of the manual account as set by user.<br>
1697
- This must be unique for the budgeting account. If not set, it will be derived from the `institution_name` (if any) plus `name`.
1698
- example: Savings
1699
1779
  balance:
1700
1780
  oneOf:
1701
1781
  - type: number
@@ -1713,23 +1793,27 @@ components:
1713
1793
  - format: date
1714
1794
  example: "2024-09-15"
1715
1795
  description: Date/time the balance of the manual account was last updated in ISO 8601 extended format
1716
- closed_on:
1717
- type: string
1718
- format: date
1719
- nullable: true
1720
- example: "2024-10-01"
1721
- description: The date this manual account was closed in YYYY-MM-DD format.
1722
1796
  currency:
1723
1797
  description: Three-letter lowercase currency code of the transaction in ISO 4217
1724
1798
  format
1725
1799
  allOf:
1726
1800
  - $ref: "#/components/schemas/currencyEnum"
1727
- institution_name:
1801
+ status:
1728
1802
  type: string
1729
- example: Bank of the West
1730
- description: Name of institution holding the manual account
1731
- minLength: 1
1732
- maxLength: 50
1803
+ description: The status of the account
1804
+ enum:
1805
+ - active
1806
+ - closed
1807
+ default: active
1808
+ closed_on:
1809
+ oneOf:
1810
+ - type: string
1811
+ format: date
1812
+ - type: string
1813
+ format: date-time
1814
+ nullable: true
1815
+ example: "2024-10-01"
1816
+ description: The date this manual account was closed in YYYY-MM-DD format. If set, `status` must also be set to `closed`.
1733
1817
  external_id:
1734
1818
  type: string
1735
1819
  nullable: true
@@ -1745,7 +1829,7 @@ components:
1745
1829
  additionalProperties: true
1746
1830
  exclude_from_transactions:
1747
1831
  type: boolean
1748
- description: If `true`, transactions may not be assigned to this manual account.
1832
+ description: If `true`, transactions may not be assigned to this manual account
1749
1833
  default: false
1750
1834
  required:
1751
1835
  - name
@@ -1761,14 +1845,30 @@ components:
1761
1845
  id:
1762
1846
  type: integer
1763
1847
  format: int32
1764
- description: System defined unique identifier of this account. Ignored if set.
1848
+ description: System defined unique identifier of this account. Ignored if set
1849
+ x-updatable: false
1765
1850
  name:
1766
1851
  type: string
1767
- description: If set, the new name of the manual account.
1852
+ description: If set, the new name of the manual account
1768
1853
  minLength: 1
1769
1854
  maxLength: 45
1855
+ x-updatable: true
1856
+ institution_name:
1857
+ type: string
1858
+ nullable: true
1859
+ description: If set, the name of institution holding the account
1860
+ minLength: 1
1861
+ maxLength: 50
1862
+ x-updatable: true
1863
+ display_name:
1864
+ type: string
1865
+ nullable: true
1866
+ description: If set, the new display name for the manual account.<br>
1867
+ This must be unique for the user.
1868
+ x-updatable: true
1770
1869
  type:
1771
- description: If set, the new type of the manual account.
1870
+ description: If set, the new type of the manual account
1871
+ x-updatable: true
1772
1872
  allOf:
1773
1873
  - $ref: "#/components/schemas/accountTypeEnum"
1774
1874
  subtype:
@@ -1777,11 +1877,7 @@ components:
1777
1877
  retirement - checking - savings - prepaid credit card
1778
1878
  minLength: 1
1779
1879
  maxLength: 100
1780
- display_name:
1781
- type: string
1782
- nullable: true
1783
- description: If set, an optional display name for the manual account.<br>
1784
- This must be unique for the user. If not set, it will be derived from the `institution_name` (if any) concatenated with the `name`.
1880
+ x-updatable: true
1785
1881
  balance:
1786
1882
  oneOf:
1787
1883
  - type: number
@@ -1792,6 +1888,13 @@ components:
1792
1888
  description: Numeric value of the current balance, up to four decimal places, of
1793
1889
  the manual account as a number or string. Do not include any special
1794
1890
  characters aside from a decimal point.
1891
+ x-updatable: true
1892
+ currency:
1893
+ description: If set, the new three-letter lowercase currency code of the manual account
1894
+ balance.
1895
+ x-updatable: true
1896
+ allOf:
1897
+ - $ref: "#/components/schemas/currencyEnum"
1795
1898
  balance_as_of:
1796
1899
  type: string
1797
1900
  oneOf:
@@ -1801,28 +1904,30 @@ components:
1801
1904
  May be set as a date, ie: YYYY-MM-DD, or date-time string in ISO 8601 extended format.
1802
1905
  This property is ignored if `balance` is not also set. If `balance` is set and this property is
1803
1906
  not set the current time is used."
1804
- closed_on:
1805
- type: string
1806
- format: date
1807
- nullable: true
1808
- description: If set, the date this manual account was closed in YYYY-MM-DD format.
1809
- currency:
1810
- description: If set, the new three-letter lowercase currency code of the manual account
1811
- balance.
1812
- allOf:
1813
- - $ref: "#/components/schemas/currencyEnum"
1814
- institution_name:
1907
+ x-updatable: true
1908
+ status:
1815
1909
  type: string
1910
+ description: If set, the status of the manual account. If set to `closed`, the the `closed_on_date` date will be set to the current date, unless it is also set.
1911
+ enum:
1912
+ - active
1913
+ - closed
1914
+ x-updatable: true
1915
+ closed_on:
1816
1916
  nullable: true
1817
- description: If set, the name of institution holding the account.
1818
- minLength: 1
1819
- maxLength: 50
1917
+ oneOf:
1918
+ - type: string
1919
+ format: date
1920
+ - type: string
1921
+ format: date-time
1922
+ description: If set, the date this manual account was closed in YYYY-MM-DD format. If updating an account that is not already closed, `status` must also be set to `closed`.
1923
+ x-updatable: true
1820
1924
  external_id:
1821
1925
  type: string
1822
1926
  nullable: true
1823
1927
  minLength: 0
1824
1928
  maxLength: 75
1825
- description: An optional user-defined ID for the manual account.
1929
+ description: An optional user-defined ID for the manual account
1930
+ x-updatable: true
1826
1931
  custom_metadata:
1827
1932
  type: object
1828
1933
  nullable: true
@@ -1830,19 +1935,31 @@ components:
1830
1935
  this account. This must be a valid JSON object and, when
1831
1936
  stringified, must not exceed 4096 characters.
1832
1937
  additionalProperties: true
1938
+ x-updatable: true
1833
1939
  exclude_from_transactions:
1834
1940
  type: boolean
1835
- description: If set, transactions may not be assigned to this manual account.
1941
+ description: If set, transactions may not be assigned to this manual account
1942
+ x-updatable: true
1943
+ to_base:
1944
+ type: number
1945
+ description: System defined balance converted to the user's primary currency. Ignored if set. Use `balance` to update the balance in the account
1946
+ x-updatable: false
1836
1947
  created_at:
1837
1948
  type: string
1838
1949
  format: date-time
1839
1950
  description: System defined date/time the account was created in ISO 8601
1840
1951
  extended format. Ignored if set.
1952
+ x-updatable: false
1841
1953
  updated_at:
1842
1954
  type: string
1843
1955
  format: date-time
1844
1956
  description: System defined date/time the account was created in ISO 8601
1845
1957
  extended format. Ignored if set.
1958
+ x-updatable: false
1959
+ created_by_name:
1960
+ type: string
1961
+ description: System defined name of the user who created the account. Ignored if set
1962
+ x-updatable: false
1846
1963
 
1847
1964
  # The object containing information about a Plaid account
1848
1965
  plaidAccountObject:
@@ -1854,10 +1971,20 @@ components:
1854
1971
  type: integer
1855
1972
  format: int32
1856
1973
  description: The unique identifier of this account
1974
+ plaid_item_id:
1975
+ type: string
1976
+ nullable: true
1977
+ minLength: 0
1978
+ maxLength: 255
1979
+ description: The unique identifier of the Plaid connection that this account belongs to. Accounts with the same plaid_item_id usually belong to the same institution.
1857
1980
  date_linked:
1858
1981
  type: string
1859
1982
  format: date
1860
1983
  description: Date account was first linked in ISO 8601 format
1984
+ linked_by_name:
1985
+ type: string
1986
+ nullable: false
1987
+ description: The name of the user who linked the account
1861
1988
  name:
1862
1989
  type: string
1863
1990
  description: Name of the account. This field is set by Plaid and cannot be
@@ -1887,20 +2014,27 @@ components:
1887
2014
  status:
1888
2015
  type: string
1889
2016
  description: "Denotes the current status of the account within Lunch Money. Must
1890
- be one of<br> - `active`: Account is active and in good state<br> -
1891
- `inactive`: Account marked inactive from user. Transaction imports and balance updates will not occur for this account.<br> - `relink`: Account
1892
- needs to be relinked with Plaid.<br> - `syncing`: Account is
1893
- awaiting first import of transactions. <br> - `not found`: Account
1894
- cannot be found with Plaid<br> - `not supported`: Account is not
1895
- supported with Plaid<br> - `error`: Account is in error with
1896
- Plaid.<br>"
2017
+ be one of<br>
2018
+ - active: Account is actively syncing transactions and/or balance<br>
2019
+ - inactive: Account marked inactive from user. Transaction imports and balance updates will not occur for this account.<br>
2020
+ - closed: Account is marked as closed<br>
2021
+ - deactivated: Account is marked deactivated during setup. The user must click `Add/Remove Accounts From This Bank` and manually re-select this account to activate it.'<br>
2022
+ - not found: Account was once linked but can no longer be found with Plaid.<br>
2023
+ - not supported: Account is not supported by Plaid.<br>
2024
+ - relink: Account (and others with the same connection) need to be relinked with Plaid.<br>
2025
+ - syncing: Account is awaiting the first import of transactions.<br>
2026
+ - revoked: Account connection has been revoked by Plaid and syncing is no longer possible. A new connection needs to be set up again.<br>
2027
+ - error: Account (and others with the same connection) is in error with Plaid and requires intervention to re-activate it.<br>"
1897
2028
  enum:
1898
2029
  - active
1899
2030
  - inactive
1900
- - relink
1901
- - syncing
2031
+ - closed
2032
+ - deactivated
1902
2033
  - not found
1903
2034
  - not supported
2035
+ - relink
2036
+ - syncing
2037
+ - revoked
1904
2038
  - error
1905
2039
  allow_transaction_modifications:
1906
2040
  type: boolean
@@ -1957,7 +2091,9 @@ components:
1957
2091
  regardless of whether any new data was available in the update.
1958
2092
  required:
1959
2093
  - id
2094
+ - plaid_item_id
1960
2095
  - date_linked
2096
+ - linked_by_name
1961
2097
  - name
1962
2098
  - display_name
1963
2099
  - type
@@ -1984,22 +2120,22 @@ components:
1984
2120
  id:
1985
2121
  type: integer
1986
2122
  format: int32
1987
- description: Unique identifier for the tag.
2123
+ description: Unique identifier for the tag
1988
2124
  name:
1989
2125
  type: string
1990
- description: Name of the tag.
2126
+ description: Name of the tag
1991
2127
  description:
1992
2128
  type: string
1993
2129
  nullable: true
1994
- description: Description of the tag.
2130
+ description: Description of the tag
1995
2131
  text_color:
1996
2132
  type: string
1997
2133
  nullable: true
1998
- description: The text color of the tag.
2134
+ description: The text color of the tag
1999
2135
  background_color:
2000
2136
  type: string
2001
2137
  nullable: true
2002
- description: The background color of the tag.
2138
+ description: The background color of the tag
2003
2139
  updated_at:
2004
2140
  type: string
2005
2141
  format: date-time
@@ -2052,16 +2188,16 @@ components:
2052
2188
  type: string
2053
2189
  nullable: true
2054
2190
  default: null
2055
- description: The description of the tag. Must not exceed 200 characters.
2191
+ description: The description of the tag. Must not exceed 200 characters
2056
2192
  maxLength: 200
2057
2193
  text_color:
2058
2194
  type: string
2059
2195
  nullable: true
2060
- description: The text color of the tag.
2196
+ description: The text color of the tag
2061
2197
  background_color:
2062
2198
  type: string
2063
2199
  nullable: true
2064
- description: The background color of the tag.
2200
+ description: The background color of the tag
2065
2201
  archived:
2066
2202
  type: boolean
2067
2203
  default: false
@@ -2083,42 +2219,51 @@ components:
2083
2219
  characters.
2084
2220
  minLength: 1
2085
2221
  maxLength: 100
2222
+ x-updatable: true
2086
2223
  description:
2087
2224
  type: string
2088
2225
  nullable: true
2089
2226
  description: If set, the new description of the category. Must not exceed 200
2090
2227
  characters.
2091
2228
  maxLength: 200
2229
+ x-updatable: true
2092
2230
  text_color:
2093
2231
  type: string
2094
2232
  nullable: true
2095
- description: The text color of the tag.
2233
+ description: The text color of the tag
2234
+ x-updatable: true
2096
2235
  background_color:
2097
2236
  type: string
2098
2237
  nullable: true
2099
- description: The background color of the tag.
2238
+ description: The background color of the tag
2239
+ x-updatable: true
2100
2240
  archived:
2101
2241
  type: boolean
2102
- description: If set, will indicate if this category is archived.
2242
+ description: If set, will indicate if this category is archived
2243
+ x-updatable: true
2103
2244
  id:
2104
2245
  type: integer
2105
2246
  format: int32
2106
- description: System-defined unique identifier for the category. Ignored if set.
2247
+ description: System-defined unique identifier for the category. Ignored if set
2248
+ x-updatable: false
2107
2249
  updated_at:
2108
2250
  type: string
2109
2251
  format: date-time
2110
2252
  nullable: false
2111
2253
  description: System-set time the tag was last updated. Ignored if set
2254
+ x-updatable: false
2112
2255
  created_at:
2113
2256
  type: string
2114
2257
  format: date-time
2115
2258
  nullable: false
2116
- description: System-set time the tag was created. Ignored if set.
2259
+ description: System-set time the tag was created. Ignored if set
2260
+ x-updatable: false
2117
2261
  archived_at:
2118
2262
  type: string
2119
2263
  format: date-time
2120
2264
  nullable: true
2121
- description: System-set time the tag was archived. Ignored if set.
2265
+ description: System-set time the tag was archived. Ignored if set
2266
+ x-updatable: false
2122
2267
 
2123
2268
  # The object returned when a DELETE /tag/:id request
2124
2269
  # has an id for a tag that has dependencies
@@ -2157,7 +2302,7 @@ components:
2157
2302
  description:
2158
2303
  type: string
2159
2304
  nullable: true
2160
- description: An optional description of this recurring item.
2305
+ description: An optional description of this recurring item
2161
2306
  status:
2162
2307
  type: string
2163
2308
  description: The status of this recurring item. `suggested` recurring items are
@@ -2168,7 +2313,7 @@ components:
2168
2313
  - reviewed
2169
2314
  transaction_criteria:
2170
2315
  type: object
2171
- description: The set of properties used to identify matching transactions.
2316
+ description: The set of properties used to identify matching transactions
2172
2317
  properties:
2173
2318
  start_date:
2174
2319
  type: string
@@ -2184,7 +2329,7 @@ components:
2184
2329
  transactions after start_date may be considered.
2185
2330
  granularity:
2186
2331
  type: string
2187
- description: The unit of time used to define the cadence of the recurring item.
2332
+ description: The unit of time used to define the cadence of the recurring item
2188
2333
  enum:
2189
2334
  - day
2190
2335
  - week
@@ -2192,7 +2337,7 @@ components:
2192
2337
  - year
2193
2338
  quantity:
2194
2339
  type: integer
2195
- description: The number of granularity units between each recurrence.
2340
+ description: The number of granularity units between each recurrence
2196
2341
  anchor_date:
2197
2342
  type: string
2198
2343
  format: date
@@ -2217,17 +2362,17 @@ components:
2217
2362
  currency:
2218
2363
  type: string
2219
2364
  nullable: false
2220
- description: Three-letter lowercase currency code of the recurring item.
2365
+ description: Three-letter lowercase currency code of the recurring item
2221
2366
  plaid_account_id:
2222
2367
  type: integer
2223
2368
  format: int64
2224
2369
  nullable: true
2225
- description: The Plaid account ID associated with the recurring item, if any.
2370
+ description: The Plaid account ID associated with the recurring item, if any
2226
2371
  manual_account_id:
2227
2372
  type: integer
2228
2373
  format: int64
2229
2374
  nullable: true
2230
- description: The manual account ID associated with the recurring item, if any.
2375
+ description: The manual account ID associated with the recurring item, if any
2231
2376
  required:
2232
2377
  - start_date
2233
2378
  - end_date
@@ -2242,7 +2387,7 @@ components:
2242
2387
  - manual_account_id
2243
2388
  overrides:
2244
2389
  type: object
2245
- description: The values that will be applied to matching transactions.
2390
+ description: The values that will be applied to matching transactions
2246
2391
  properties:
2247
2392
  payee:
2248
2393
  type: string
@@ -2285,17 +2430,17 @@ components:
2285
2430
  transactions is expected.
2286
2431
  found_transactions:
2287
2432
  type: array
2288
- description: A list with the dates and IDs of matching transactions.
2433
+ description: A list with the dates and IDs of matching transactions
2289
2434
  items:
2290
2435
  type: object
2291
2436
  properties:
2292
2437
  date:
2293
2438
  type: string
2294
2439
  format: date
2295
- description: The date for a matching transaction within the specified range.
2440
+ description: The date for a matching transaction within the specified range
2296
2441
  transaction_id:
2297
2442
  type: integer
2298
- description: The ID of a matching transaction within the specified range.
2443
+ description: The ID of a matching transaction within the specified range
2299
2444
  missing_transaction_dates:
2300
2445
  type: array
2301
2446
  items:
@@ -2306,17 +2451,17 @@ components:
2306
2451
  created_by:
2307
2452
  type: integer
2308
2453
  nullable: false
2309
- description: The ID of the user who created the recurring item.
2454
+ description: The ID of the user who created the recurring item
2310
2455
  created_at:
2311
2456
  type: string
2312
2457
  format: date-time
2313
2458
  nullable: false
2314
- description: Date/time the recurring item was created in ISO 8601 extended format.
2459
+ description: Date/time the recurring item was created in ISO 8601 extended format
2315
2460
  updated_at:
2316
2461
  type: string
2317
2462
  format: date-time
2318
2463
  nullable: false
2319
- description: Date/time the recurring item was updated in ISO 8601 extended format.
2464
+ description: Date/time the recurring item was updated in ISO 8601 extended format
2320
2465
  source:
2321
2466
  type: string
2322
2467
  description: >
@@ -2781,19 +2926,19 @@ components:
2781
2926
  x-internal: true # Don't display in schemas section of docs
2782
2927
  properties:
2783
2928
  other_activity:
2784
- description: Total amount, in the user's default currency, of non recurring activity for the given date range.
2929
+ description: Total amount, in the user's default currency, of non recurring activity for the given date range
2785
2930
  type: number
2786
2931
  recurring_activity:
2787
- description: Total amount, in the user's default currency, of recurring activity that has occurred for the given date range.
2932
+ description: Total amount, in the user's default currency, of recurring activity that has occurred for the given date range
2788
2933
  type: number
2789
2934
  recurring_remaining:
2790
- description: Total amount, in the user's default currency, of expected recurring activity that has not yet occurred.
2935
+ description: Total amount, in the user's default currency, of expected recurring activity that has not yet occurred
2791
2936
  type: number
2792
2937
  uncategorized:
2793
- description: Total amount, in the user's default currency, of non recurring activity coming from un-categorized transactions.
2938
+ description: Total amount, in the user's default currency, of non recurring activity coming from un-categorized transactions
2794
2939
  type: number
2795
2940
  uncategorized_count:
2796
- description: Number of un-categorized transactions for the given date range.
2941
+ description: Number of un-categorized transactions for the given date range
2797
2942
  type: integer
2798
2943
  uncategorized_recurring:
2799
2944
  description: "Total amount, in the user's default currency, of recurring activity coming from un-categorized transactions."
@@ -2814,6 +2959,8 @@ components:
2814
2959
  type: array
2815
2960
  items:
2816
2961
  $ref: "#/components/schemas/summaryCategoryOccurrenceObject"
2962
+ rollover_pool:
2963
+ $ref: "#/components/schemas/summaryRolloverPoolObject"
2817
2964
  required:
2818
2965
  - category_id
2819
2966
  - totals
@@ -2886,8 +3033,8 @@ components:
2886
3033
  x-internal: true # Don't display in schemas section of docs
2887
3034
  description: "The date and adjusted balance of the rollover pool at the time of the adjustment."
2888
3035
  properties:
2889
- current:
2890
- description: "true if this is the current rollover pool balance."
3036
+ in_range:
3037
+ description: "true if this rollover pool adjustment is for a budget period that falls within the given date range."
2891
3038
  type: boolean
2892
3039
  date:
2893
3040
  type: string
@@ -2903,7 +3050,7 @@ components:
2903
3050
  description: "Amount of the rollover pool converted to the user's default currency."
2904
3051
  type: number
2905
3052
  required:
2906
- - current
3053
+ - in_range
2907
3054
  - date
2908
3055
  - amount
2909
3056
  - currency
@@ -2978,20 +3125,20 @@ components:
2978
3125
  description: "Per period budget activity for the each budget period within the given date range.<br>
2979
3126
  This is only returned if the query parameter `include_occurrences` is set to `true`."
2980
3127
  properties:
2981
- current:
2982
- description: true if this occurrence is the current budget period.
3128
+ in_range:
3129
+ description: true if this occurrence is within the given date range
2983
3130
  type: boolean
2984
3131
  start_date:
2985
- description: The start date of the budget period.
3132
+ description: The start date of the budget period
2986
3133
  type: string
2987
3134
  format: date
2988
3135
  end_date:
2989
- description: The end date of the budget period.
3136
+ description: The end date of the budget period
2990
3137
  type: string
2991
3138
  format: date
2992
3139
  other_activity:
2993
3140
  description: Total non recurring activity, in the user's default currency, for the category within the given date range.
2994
- The total activity for the category is the sum of this and the recurring_activity.
3141
+ The total activity for the category is the sum of this and the recurring_activity
2995
3142
  type: number
2996
3143
  recurring_activity:
2997
3144
  description: Total recurring activity, in the user's default currency, for the category within the given date range.
@@ -3002,11 +3149,11 @@ components:
3002
3149
  type: number
3003
3150
  nullable: true
3004
3151
  budgeted_amount:
3005
- description: Total budgeted amount in the budgeted currency for the category within the given date or null if the category is not budgeted.
3152
+ description: Total budgeted amount in the budgeted currency for the category within the given date or null if the category is not budgeted
3006
3153
  type: string
3007
3154
  nullable: true
3008
3155
  budgeted_currency:
3009
- description: Currency of the budgeted amount.
3156
+ description: Currency of the budgeted amount
3010
3157
  nullable: true
3011
3158
  allOf:
3012
3159
  - $ref: "#/components/schemas/currencyEnum"
@@ -3015,7 +3162,7 @@ components:
3015
3162
  type: string
3016
3163
  nullable: true
3017
3164
  required:
3018
- - current
3165
+ - in_range
3019
3166
  - start_date
3020
3167
  - end_date
3021
3168
  - other_activity
@@ -3064,7 +3211,7 @@ components:
3064
3211
  description: "Amount of funds, in the user's default currency, currently available to rollover."
3065
3212
  type: number
3066
3213
  all_adjustments:
3067
- description: List of previous adjustments to the rollover pool.
3214
+ description: List of previous adjustments to the rollover pool
3068
3215
  type: array
3069
3216
  items:
3070
3217
  $ref: "#/components/schemas/summaryRolloverPoolAdjustmentObject"
@@ -3098,7 +3245,7 @@ components:
3098
3245
  errors:
3099
3246
  - errMsg: Too many requests, please try again later.
3100
3247
  serverError:
3101
- description: Internal Server Error. Contact support.
3248
+ description: Internal Server Error. Contact support
3102
3249
  content:
3103
3250
  application/json:
3104
3251
  schema:
@@ -3140,7 +3287,7 @@ paths:
3140
3287
  parameters: []
3141
3288
  responses:
3142
3289
  "200":
3143
- description: The User Object associated with the authorized token.
3290
+ description: The User Object associated with the authorized token
3144
3291
  content:
3145
3292
  application/json:
3146
3293
  schema:
@@ -3164,12 +3311,12 @@ paths:
3164
3311
  tags:
3165
3312
  - summary
3166
3313
  summary: Get summary
3167
- description: Returns a summary of the budget activity for the specified date range.
3314
+ description: Returns a summary of the budget activity for the specified date range
3168
3315
  operationId: getBudgetSummary
3169
3316
  parameters:
3170
3317
  - in: query
3171
3318
  name: start_date
3172
- description: Start of date range in ISO 8601 date format (YYYY-MM-DD).
3319
+ description: Start of date range in ISO 8601 date format (YYYY-MM-DD)
3173
3320
  required: true
3174
3321
  schema:
3175
3322
  type: string
@@ -3201,7 +3348,7 @@ paths:
3201
3348
  value: "2025-08-27"
3202
3349
  - in: query
3203
3350
  name: include_exclude_from_budgets
3204
- description: Enable to include categories that have the 'Exclude from Budgets' flag set in the returned `categories` array.
3351
+ description: Enable to include categories that have the 'Exclude from Budgets' flag set in the returned `categories` array
3205
3352
  required: false
3206
3353
  schema:
3207
3354
  type: boolean
@@ -3213,6 +3360,13 @@ paths:
3213
3360
  schema:
3214
3361
  type: boolean
3215
3362
  default: false
3363
+ - in: query
3364
+ name: include_past_budget_dates
3365
+ 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`."
3366
+ required: false
3367
+ schema:
3368
+ type: boolean
3369
+ default: false
3216
3370
  - in: query
3217
3371
  name: include_totals
3218
3372
  description: "Enable to include a top-level `totals` section that summarizes the inflow and outflow across all transactions for the specified date range."
@@ -3220,9 +3374,16 @@ paths:
3220
3374
  schema:
3221
3375
  type: boolean
3222
3376
  default: false
3377
+ - in: query
3378
+ name: include_rollover_pool
3379
+ description: "Enable to include a `rollover_pool` section that summarizes the current rollover pool balance and all previous adjustments."
3380
+ required: false
3381
+ schema:
3382
+ type: boolean
3383
+ default: false
3223
3384
  responses:
3224
3385
  "200":
3225
- description: Budget summary for the requested range.
3386
+ description: Budget summary for the requested range
3226
3387
  content:
3227
3388
  application/json:
3228
3389
  schema:
@@ -3245,7 +3406,7 @@ paths:
3245
3406
  recurring_remaining: 0
3246
3407
  recurring_expected: 0
3247
3408
  occurrences:
3248
- - current: false
3409
+ - in_range: true
3249
3410
  start_date: "2025-07-01"
3250
3411
  end_date: "2025-07-31"
3251
3412
  other_activity: 156.64
@@ -3254,7 +3415,7 @@ paths:
3254
3415
  budgeted_amount: "500.0000"
3255
3416
  budgeted_currency: "usd"
3256
3417
  notes: "Monthly budget allocation"
3257
- - current: false
3418
+ - in_range: true
3258
3419
  start_date: "2025-08-01"
3259
3420
  end_date: "2025-08-31"
3260
3421
  other_activity: 0
@@ -3272,7 +3433,7 @@ paths:
3272
3433
  recurring_remaining: 0
3273
3434
  recurring_expected: 0
3274
3435
  occurrences:
3275
- - current: false
3436
+ - in_range: true
3276
3437
  start_date: "2025-07-01"
3277
3438
  end_date: "2025-07-31"
3278
3439
  other_activity: 424.8
@@ -3281,7 +3442,7 @@ paths:
3281
3442
  budgeted_amount: "200.0000"
3282
3443
  budgeted_currency: "usd"
3283
3444
  notes: "Based on previous month's activity"
3284
- - current: false
3445
+ - in_range: true
3285
3446
  start_date: "2025-08-01"
3286
3447
  end_date: "2025-08-31"
3287
3448
  other_activity: 0
@@ -3299,7 +3460,7 @@ paths:
3299
3460
  recurring_remaining: 0
3300
3461
  recurring_expected: 0
3301
3462
  occurrences:
3302
- - current: false
3463
+ - in_range: true
3303
3464
  start_date: "2025-07-01"
3304
3465
  end_date: "2025-07-31"
3305
3466
  other_activity: 25.69
@@ -3308,7 +3469,7 @@ paths:
3308
3469
  budgeted_amount: "200.0000"
3309
3470
  budgeted_currency: "usd"
3310
3471
  notes: "Holiday spending budget"
3311
- - current: false
3472
+ - in_range: true
3312
3473
  start_date: "2025-08-01"
3313
3474
  end_date: "2025-08-31"
3314
3475
  other_activity: 0
@@ -3394,7 +3555,7 @@ paths:
3394
3555
  recurring_remaining: 0
3395
3556
  recurring_expected: 0
3396
3557
  occurrences:
3397
- - current: false
3558
+ - in_range: true
3398
3559
  start_date: "2025-07-01"
3399
3560
  end_date: "2025-07-31"
3400
3561
  other_activity: 156.64
@@ -3412,7 +3573,7 @@ paths:
3412
3573
  recurring_remaining: 0
3413
3574
  recurring_expected: 0
3414
3575
  occurrences:
3415
- - current: false
3576
+ - in_range: true
3416
3577
  start_date: "2025-07-01"
3417
3578
  end_date: "2025-07-31"
3418
3579
  other_activity: 424.8
@@ -3430,7 +3591,7 @@ paths:
3430
3591
  recurring_remaining: 0
3431
3592
  recurring_expected: 0
3432
3593
  occurrences:
3433
- - current: false
3594
+ - in_range: true
3434
3595
  start_date: "2025-07-01"
3435
3596
  end_date: "2025-07-31"
3436
3597
  other_activity: 0
@@ -3467,7 +3628,7 @@ paths:
3467
3628
  recurring_remaining: 0
3468
3629
  recurring_expected: 0
3469
3630
  occurrences:
3470
- - current: false
3631
+ - in_range: true
3471
3632
  start_date: "2025-07-01"
3472
3633
  end_date: "2025-07-31"
3473
3634
  other_activity: 156.64
@@ -3476,7 +3637,7 @@ paths:
3476
3637
  budgeted_amount: "500.0000"
3477
3638
  budgeted_currency: "usd"
3478
3639
  notes: "Monthly budget allocation"
3479
- - current: false
3640
+ - in_range: true
3480
3641
  start_date: "2025-08-01"
3481
3642
  end_date: "2025-08-31"
3482
3643
  other_activity: 0
@@ -3494,7 +3655,7 @@ paths:
3494
3655
  recurring_remaining: 0
3495
3656
  recurring_expected: 0
3496
3657
  occurrences:
3497
- - current: false
3658
+ - in_range: true
3498
3659
  start_date: "2025-07-01"
3499
3660
  end_date: "2025-07-31"
3500
3661
  other_activity: 424.8
@@ -3503,7 +3664,7 @@ paths:
3503
3664
  budgeted_amount: "200.0000"
3504
3665
  budgeted_currency: "usd"
3505
3666
  notes: "Based on previous month's activity"
3506
- - current: false
3667
+ - in_range: true
3507
3668
  start_date: "2025-08-01"
3508
3669
  end_date: "2025-08-31"
3509
3670
  other_activity: 0
@@ -3521,7 +3682,7 @@ paths:
3521
3682
  recurring_remaining: 0
3522
3683
  recurring_expected: 0
3523
3684
  occurrences:
3524
- - current: false
3685
+ - in_range: true
3525
3686
  start_date: "2025-07-01"
3526
3687
  end_date: "2025-07-31"
3527
3688
  other_activity: 25.69
@@ -3530,7 +3691,7 @@ paths:
3530
3691
  budgeted_amount: "200.0000"
3531
3692
  budgeted_currency: "usd"
3532
3693
  notes: "Holiday spending budget"
3533
- - current: false
3694
+ - in_range: true
3534
3695
  start_date: "2025-08-01"
3535
3696
  end_date: "2025-08-31"
3536
3697
  other_activity: 0
@@ -3539,6 +3700,99 @@ paths:
3539
3700
  budgeted_amount: "200.0000"
3540
3701
  budgeted_currency: "usd"
3541
3702
  notes: "Summer vacation savings"
3703
+ "with past occurrences":
3704
+ summary: "Monthly budget summary with past occurrences included"
3705
+ description: "Example response for aligned monthly budget periods with include_past_budget_dates=true, showing 3 past occurrences with in_range: false"
3706
+ value:
3707
+ aligned: true
3708
+ categories:
3709
+ - category_id: 315177
3710
+ totals:
3711
+ other_activity: 156.64
3712
+ recurring_activity: 0
3713
+ budgeted: 500
3714
+ available: 343.36
3715
+ recurring_remaining: 0
3716
+ recurring_expected: 0
3717
+ occurrences:
3718
+ - in_range: false
3719
+ start_date: "2025-04-01"
3720
+ end_date: "2025-04-30"
3721
+ other_activity: 120.50
3722
+ recurring_activity: 0
3723
+ budgeted: 500
3724
+ budgeted_amount: "500.0000"
3725
+ budgeted_currency: "usd"
3726
+ notes: "Monthly budget allocation"
3727
+ - in_range: false
3728
+ start_date: "2025-05-01"
3729
+ end_date: "2025-05-31"
3730
+ other_activity: 180.25
3731
+ recurring_activity: 0
3732
+ budgeted: 500
3733
+ budgeted_amount: "500.0000"
3734
+ budgeted_currency: "usd"
3735
+ notes: null
3736
+ - in_range: false
3737
+ start_date: "2025-06-01"
3738
+ end_date: "2025-06-30"
3739
+ other_activity: 200.00
3740
+ recurring_activity: 0
3741
+ budgeted: 500
3742
+ budgeted_amount: "500.0000"
3743
+ budgeted_currency: "usd"
3744
+ notes: "Adjusted for seasonal spending"
3745
+ - in_range: true
3746
+ start_date: "2025-07-01"
3747
+ end_date: "2025-07-31"
3748
+ other_activity: 156.64
3749
+ recurring_activity: 0
3750
+ budgeted: 500
3751
+ budgeted_amount: "500.0000"
3752
+ budgeted_currency: "usd"
3753
+ notes: "Monthly budget allocation"
3754
+ "with rollover pool":
3755
+ summary: "Monthly budget summary with rollover pool included"
3756
+ description: "Example response for aligned monthly budget periods with include_rollover_pool=true, showing rollover pool data for categories with budgets"
3757
+ value:
3758
+ aligned: true
3759
+ categories:
3760
+ - category_id: 315177
3761
+ totals:
3762
+ other_activity: 156.64
3763
+ recurring_activity: 0
3764
+ budgeted: 500
3765
+ available: 343.36
3766
+ recurring_remaining: 0
3767
+ recurring_expected: 0
3768
+ occurrences:
3769
+ - in_range: true
3770
+ start_date: "2025-07-01"
3771
+ end_date: "2025-07-31"
3772
+ other_activity: 156.64
3773
+ recurring_activity: 0
3774
+ budgeted: 500
3775
+ budgeted_amount: "500.0000"
3776
+ budgeted_currency: "usd"
3777
+ notes: "Monthly budget allocation"
3778
+ rollover_pool:
3779
+ budgeted_to_base: 179.50
3780
+ all_adjustments:
3781
+ - in_range: false
3782
+ date: "2025-06-30"
3783
+ amount: "179.5000"
3784
+ currency: "usd"
3785
+ to_base: 179.50
3786
+ - in_range: false
3787
+ date: "2025-05-31"
3788
+ amount: "120.2500"
3789
+ currency: "usd"
3790
+ to_base: 120.25
3791
+ - in_range: false
3792
+ date: "2025-04-30"
3793
+ amount: "80.0000"
3794
+ currency: "usd"
3795
+ to_base: 80.00
3542
3796
  "401":
3543
3797
  $ref: "#/components/responses/unauthorizedToken"
3544
3798
  "429":
@@ -3550,7 +3804,7 @@ paths:
3550
3804
  tags:
3551
3805
  - categories
3552
3806
  summary: Get all categories
3553
- description: Retrieve a list of all categories associated with the user's account.
3807
+ description: Retrieve a list of all categories associated with the user's account
3554
3808
  operationId: getAllCategories
3555
3809
  parameters:
3556
3810
  - name: format
@@ -3900,7 +4154,7 @@ paths:
3900
4154
  tags:
3901
4155
  - categories
3902
4156
  summary: Get a single category
3903
- description: Retrieve details of a specific category or category group by its ID.
4157
+ description: Retrieve details of a specific category or category group by its ID
3904
4158
  operationId: getCategoryById
3905
4159
  parameters:
3906
4160
  - name: id
@@ -3922,7 +4176,7 @@ paths:
3922
4176
  value: 543210
3923
4177
  responses:
3924
4178
  "201":
3925
- description: Category Object with the requested category or category group.
4179
+ description: Category Object with the requested category or category group
3926
4180
  content:
3927
4181
  application/json:
3928
4182
  schema:
@@ -4288,32 +4542,36 @@ paths:
4288
4542
  manual_accounts:
4289
4543
  - id: 119807
4290
4544
  name: Individual Brokerage
4545
+ institution_name: Fidelity
4546
+ display_name: null
4291
4547
  type: investment
4292
4548
  subtype: brokerage
4293
- display_name: null
4294
4549
  balance: "41211.8000"
4295
- balance_as_of: "2025-06-25T17:00:04.000Z"
4296
- closed_on: null
4297
4550
  currency: usd
4298
4551
  to_base: 41211.8
4299
- institution_name: Fidelity
4552
+ balance_as_of: "2025-06-25T17:00:04.000Z"
4553
+ status: active
4554
+ closed_on: null
4300
4555
  external_id: null
4301
4556
  exclude_from_transactions: false
4557
+ created_by_name: User 1
4302
4558
  created_at: "2025-06-25T17:00:04.414Z"
4303
4559
  updated_at: "2025-06-26T19:03:38.312Z"
4304
4560
  - id: 119909
4305
4561
  name: Euro Travel Card
4562
+ institution_name: WeBank
4563
+ display_name: null
4306
4564
  type: credit
4307
4565
  subtype: credit card
4308
- display_name: null
4309
4566
  balance: "1004.8000"
4310
- balance_as_of: "2023-06-25T17:00:04.000Z"
4311
- closed_on: null
4312
4567
  currency: usd
4313
4568
  to_base: 1004.8
4314
- institution_name: WeBank
4569
+ balance_as_of: "2023-06-25T17:00:04.000Z"
4570
+ status: active
4571
+ closed_on: null
4315
4572
  external_id: null
4316
4573
  exclude_from_transactions: false
4574
+ created_by_name: User 1
4317
4575
  created_at: "2025-06-25T17:00:04.414Z"
4318
4576
  updated_at: "2025-06-26T19:03:38.312Z"
4319
4577
  "400":
@@ -4341,7 +4599,7 @@ paths:
4341
4599
  tags:
4342
4600
  - manual_accounts
4343
4601
  summary: Create a manual account
4344
- description: Create a new manually-managed account.<br><br>
4602
+ description: Creates a new manually-managed account
4345
4603
  operationId: createManualAccount
4346
4604
  requestBody:
4347
4605
  required: true
@@ -4395,34 +4653,38 @@ paths:
4395
4653
  value:
4396
4654
  id: 119999
4397
4655
  name: API created Account
4656
+ institution_name: null
4398
4657
  display_name: null
4399
4658
  type: cash
4400
4659
  subtype: null
4401
4660
  balance: "100"
4402
- balance_as_of: "2024-10-06T18:55:08.599Z"
4403
- closed_on: null
4404
4661
  currency: usd
4405
4662
  to_base: 100
4406
- institution_name: null
4663
+ balance_as_of: "2024-10-06T18:55:08.599Z"
4664
+ status: active
4665
+ closed_on: null
4407
4666
  external_id: null
4408
4667
  exclude_from_transactions: false
4668
+ created_by_name: User 1
4409
4669
  created_at: "2024-10-06T18:55:08.599Z"
4410
4670
  updated_at: "2024-10-06T18:55:08.599Z"
4411
4671
  complete request response:
4412
4672
  value:
4413
4673
  id: 119999
4414
4674
  name: API created loan
4675
+ institution_name: Bank of America
4415
4676
  display_name: Car loan
4416
4677
  type: vehicle
4417
4678
  subtype: loan
4418
4679
  balance: "9999.99"
4419
- balance_as_of: "2024-10-06T18:55:08.599Z"
4420
- closed_on: null
4421
4680
  currency: usd
4422
4681
  to_base: 9999.99
4423
- institution_name: Bank of America
4682
+ balance_as_of: "2024-10-06T18:55:08.599Z"
4683
+ status: active
4684
+ closed_on: null
4424
4685
  external_id: null
4425
4686
  exclude_from_transactions: false
4687
+ created_by_name: User 1
4426
4688
  created_at: "2024-10-06T18:57:12.029Z"
4427
4689
  updated_at: "2024-10-06T18:57:12.029Z"
4428
4690
  "400":
@@ -4470,7 +4732,7 @@ paths:
4470
4732
  tags:
4471
4733
  - manual_accounts
4472
4734
  summary: Get a single manual account
4473
- description: Retrieve the details of the manual account with the specified ID.
4735
+ description: Retrieve the details of the manual account with the specified ID
4474
4736
  operationId: getManualAccountById
4475
4737
  parameters:
4476
4738
  - name: id
@@ -4489,7 +4751,7 @@ paths:
4489
4751
  value: 9999999999999
4490
4752
  responses:
4491
4753
  "200":
4492
- description: Manual Account Object with the requested account.
4754
+ description: Manual Account Object with the requested account
4493
4755
  content:
4494
4756
  application/json:
4495
4757
  schema:
@@ -4497,17 +4759,19 @@ paths:
4497
4759
  example:
4498
4760
  id: 119807
4499
4761
  name: Individual Brokerage
4762
+ institution_name: Fidelity
4763
+ display_name: null
4500
4764
  type: investment
4501
4765
  subtype: brokerage
4502
- display_name: null
4503
4766
  balance: "41211.8000"
4504
- balance_as_of: "2025-06-25T17:00:04.000Z"
4505
- closed_on: null
4506
4767
  currency: usd
4507
4768
  to_base: 41211.8
4508
- institution_name: Fidelity
4769
+ balance_as_of: "2025-06-25T17:00:04.000Z"
4770
+ status: active
4771
+ closed_on: null
4509
4772
  external_id: null
4510
4773
  exclude_from_transactions: false
4774
+ created_by_name: User 1
4511
4775
  created_at: "2025-06-25T17:00:04.414Z"
4512
4776
  updated_at: "2025-06-26T19:03:38.312Z"
4513
4777
  "400":
@@ -4547,7 +4811,7 @@ paths:
4547
4811
 
4548
4812
  You may submit the response from a `GET /manual_accounts/{id}` as the request body, however only certain
4549
4813
  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>
4814
+ accepted in the request body but their values will be ignored: `id`, `to_base`, `created_at`, and `updated_at`.<br><br>
4551
4815
 
4552
4816
  It is also possible to provide only the properties to be updated in the
4553
4817
  request body, as long as the request includes at least one of the
@@ -4613,34 +4877,38 @@ paths:
4613
4877
  value:
4614
4878
  id: 119807
4615
4879
  name: Individual Brokerage
4880
+ institution_name: Fidelity
4881
+ display_name: null
4616
4882
  type: investment
4617
4883
  subtype: brokerage
4618
- display_name: null
4619
4884
  balance: "41211.8000"
4620
- balance_as_of: "2025-06-25T17:00:04.000Z"
4621
- closed_on: null
4622
4885
  currency: usd
4623
4886
  to_base: 41211.8
4887
+ balance_as_of: "2025-06-25T17:00:04.000Z"
4888
+ status: active
4889
+ closed_on: null
4624
4890
  external_id: null
4625
- institution_name: Fidelity
4626
4891
  exclude_from_transactions: false
4892
+ created_by_name: User 1
4627
4893
  created_at: "2025-06-25T17:00:04.414Z"
4628
4894
  updated_at: "2025-06-26T19:03:38.312Z"
4629
4895
  closed account:
4630
4896
  value:
4631
4897
  id: 119807
4632
4898
  name: Individual Brokerage
4899
+ institution_name: Fidelity
4900
+ display_name: null
4633
4901
  type: investment
4634
4902
  subtype: brokerage
4635
- display_name: null
4636
4903
  balance: "41211.8000"
4637
- balance_as_of: "2025-06-25T17:00:04.000Z"
4638
- closed_on: "2024-10-06"
4639
4904
  currency: usd
4640
4905
  to_base: 41211.8
4906
+ balance_as_of: "2025-06-25T17:00:04.000Z"
4907
+ status: closed
4908
+ closed_on: "2024-10-06"
4641
4909
  external_id: null
4642
- institution_name: Fidelity
4643
4910
  exclude_from_transactions: true
4911
+ created_by_name: User 1
4644
4912
  created_at: "2025-06-25T17:00:04.414Z"
4645
4913
  updated_at: "2024-10-06T19:03:09.506Z"
4646
4914
  "400":
@@ -4764,7 +5032,9 @@ paths:
4764
5032
  example:
4765
5033
  plaid_accounts:
4766
5034
  - id: 119804
5035
+ plaid_item_id: "aB2cD3eF4gH5iJ6kL7mN8oP9qR0sT1uV2wX3yZ4"
4767
5036
  date_linked: "2020-01-28"
5037
+ linked_by_name: User 1
4768
5038
  name: 401k
4769
5039
  display_name: ""
4770
5040
  type: brokerage
@@ -4777,13 +5047,15 @@ paths:
4777
5047
  balance: "12345.6700"
4778
5048
  currency: usd
4779
5049
  to_base: 12345.67
4780
- balance_last_update: "2020-01-27T01:38:11.862Z"
5050
+ balance_last_update: "2025-01-27T01:38:11.862Z"
4781
5051
  import_start_date: "2023-01-01"
4782
- last_import: "2019-09-04T12:57:09.190Z"
4783
- last_fetch: "2020-01-28T01:38:11.862Z"
4784
- plaid_last_successful_update: "2020-01-27T01:38:11.862Z"
5052
+ last_import: "2025-01-24T12:57:09.190Z"
5053
+ last_fetch: "2025-01-28T01:38:11.862Z"
5054
+ plaid_last_successful_update: "2025-01-27T01:38:11.862Z"
4785
5055
  - id: 119805
5056
+ plaid_item_id: "xY9zW8vU7tS6rQ5pO4nM3lK2jI1hG0fE9dC8bA7"
4786
5057
  date_linked: "2020-01-28"
5058
+ linked_by_name: User 1
4787
5059
  name: Freedom
4788
5060
  display_name: Penny's Visa
4789
5061
  type: credit
@@ -4796,13 +5068,15 @@ paths:
4796
5068
  balance: "0.0000"
4797
5069
  currency: usd
4798
5070
  to_base: 0
4799
- balance_last_update: "2023-01-27T01:38:07.460Z"
5071
+ balance_last_update: "2025-01-27T01:38:07.460Z"
4800
5072
  import_start_date: "2023-01-01"
4801
- last_import: "2023-01-24T12:57:03.250Z"
4802
- last_fetch: "2023-01-28T01:38:11.862Z"
4803
- plaid_last_successful_update: "2023-01-27T01:38:11.862Z"
4804
- - id: 119806
5073
+ last_import: "2025-01-24T12:57:03.250Z"
5074
+ last_fetch: "2025-01-28T01:38:11.862Z"
5075
+ plaid_last_successful_update: "2025-01-27T01:38:11.862Z"
5076
+ - id: 119807
5077
+ plaid_item_id: "mK8nL9oP0qR1sT2uV3wX4yZ5aB6cD7eF8gH9iJ0"
4805
5078
  date_linked: "2020-01-28"
5079
+ linked_by_name: User 1
4806
5080
  name: Checking
4807
5081
  display_name: Penny's Checking
4808
5082
  type: cash
@@ -4815,11 +5089,11 @@ paths:
4815
5089
  balance: "5498.2800"
4816
5090
  currency: usd
4817
5091
  to_base: 5498.28
4818
- balance_last_update: "2023-01-27T01:38:07.460Z"
5092
+ balance_last_update: "2025-01-27T01:38:07.460Z"
4819
5093
  import_start_date: "2023-01-01"
4820
- last_import: "2023-01-24T12:57:03.250Z"
4821
- last_fetch: "2023-01-28T01:38:11.862Z"
4822
- plaid_last_successful_update: "2023-01-27T01:38:11.862Z"
5094
+ last_import: "2025-01-24T12:57:03.250Z"
5095
+ last_fetch: "2025-01-28T01:38:11.862Z"
5096
+ plaid_last_successful_update: "2025-01-27T01:38:11.862Z"
4823
5097
  "400":
4824
5098
  description: Bad Request
4825
5099
  content:
@@ -4846,7 +5120,7 @@ paths:
4846
5120
  tags:
4847
5121
  - plaid_accounts
4848
5122
  summary: Get a single account that is synced via Plaid
4849
- description: Retrieve the details of the plaid account with the specified ID.
5123
+ description: Retrieve the details of the plaid account with the specified ID
4850
5124
  operationId: getPlaidAccountById
4851
5125
  parameters:
4852
5126
  - name: id
@@ -4865,14 +5139,16 @@ paths:
4865
5139
  value: 9999999999999
4866
5140
  responses:
4867
5141
  "200":
4868
- description: Plaid Account Object with the requested account.
5142
+ description: Plaid Account Object with the requested account
4869
5143
  content:
4870
5144
  application/json:
4871
5145
  schema:
4872
5146
  $ref: "#/components/schemas/plaidAccountObject"
4873
5147
  example:
4874
5148
  id: 119805
5149
+ plaid_item_id: "xY9zW8vU7tS6rQ5pO4nM3lK2jI1hG0fE9dC8bA7"
4875
5150
  date_linked: "2020-01-28"
5151
+ linked_by_name: User 1
4876
5152
  name: Freedom
4877
5153
  display_name: Penny's Visa
4878
5154
  type: credit
@@ -4885,11 +5161,11 @@ paths:
4885
5161
  balance: "0.0000"
4886
5162
  currency: usd
4887
5163
  to_base: 0
4888
- balance_last_update: "2023-01-27T01:38:07.460Z"
5164
+ balance_last_update: "2025-01-27T01:38:07.460Z"
4889
5165
  import_start_date: "2023-01-01"
4890
- last_import: "2023-01-24T12:57:03.250Z"
4891
- last_fetch: "2023-01-28T01:38:11.862Z"
4892
- plaid_last_successful_update: "2023-01-27T01:38:11.862Z"
5166
+ last_import: "2025-01-24T12:57:03.250Z"
5167
+ last_fetch: "2025-01-28T01:38:11.862Z"
5168
+ plaid_last_successful_update: "2025-01-27T01:38:11.862Z"
4893
5169
  "400":
4894
5170
  description: Bad Request
4895
5171
  content:
@@ -4949,7 +5225,7 @@ paths:
4949
5225
  schema:
4950
5226
  type: string
4951
5227
  format: date
4952
- description: Denotes the beginning of the time period to fetch transactions for.
5228
+ description: Denotes the beginning of the time period to fetch transactions for
4953
5229
  If omitted, the most recent transactions will be returned. <br>
4954
5230
  Required if end_date exists. <br>
4955
5231
  - name: end_date
@@ -5034,7 +5310,7 @@ paths:
5034
5310
  schema:
5035
5311
  type: string
5036
5312
  format: date
5037
- description: Denotes the beginning of the time period to fetch transactions for.
5313
+ description: Denotes the beginning of the time period to fetch transactions for
5038
5314
  If omitted, the most recent transactions will be returned. See
5039
5315
  `limit`. Required if end_date exists. <br>
5040
5316
  - name: end_date
@@ -5044,6 +5320,28 @@ paths:
5044
5320
  format: date
5045
5321
  description: "Denotes the end of the time period you'd like to get transactions
5046
5322
  for. Required if start_date exists. "
5323
+ - name: created_since
5324
+ in: query
5325
+ schema:
5326
+ oneOf:
5327
+ - type: string
5328
+ format: date
5329
+ - type: string
5330
+ format: date-time
5331
+ description: Filter transactions to those created after the specified timestamp.
5332
+ Accepts either a date (YYYY-MM-DD) or ISO 8601 datetime string. Date-only values
5333
+ are interpreted as midnight UTC (00:00:00Z).
5334
+ - name: updated_since
5335
+ in: query
5336
+ schema:
5337
+ oneOf:
5338
+ - type: string
5339
+ format: date
5340
+ - type: string
5341
+ format: date-time
5342
+ description: Filter transactions to those updated after the specified timestamp.
5343
+ Accepts either a date (YYYY-MM-DD) or ISO 8601 datetime string. Date-only values
5344
+ are interpreted as midnight UTC (00:00:00Z).
5047
5345
  - name: manual_account_id
5048
5346
  in: query
5049
5347
  schema:
@@ -5051,9 +5349,11 @@ paths:
5051
5349
  format: int32
5052
5350
  description: Filter transactions to those associated with specified manual
5053
5351
  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
5352
+ accounts. Setting both this and `plaid_account_id` to 0 will
5055
5353
  return transactions with no account. These are listed as "Cash
5056
- Transactions" in the Lunch Money GUI.
5354
+ Transactions" in the Lunch Money GUI.<br>
5355
+ Note that transaction groups are not associated with any account. If you want
5356
+ the response to include transactions from transaction groups, set the `include_group_children` query parameter to `true` when filtering by manual accounts.
5057
5357
  examples:
5058
5358
  euro travel card:
5059
5359
  value: 219909
@@ -5068,11 +5368,13 @@ paths:
5068
5368
  account ID or set this to 0 to omit any transactions from plaid
5069
5369
  accounts. Setting both this and `manual_account_id` to 0 will return
5070
5370
  transactions with no account. These are listed as "Cash
5071
- Transactions" in the Lunch Money GUI.
5371
+ Transactions" in the Lunch Money GUI.<br>
5372
+ Note that transaction groups are not associated with any account. If you want
5373
+ the response to include transactions from transaction groups, set the `include_group_children` query parameter to `true` when filtering by plaid accounts.
5072
5374
  examples:
5073
5375
  brokerage account:
5074
5376
  value: 119807
5075
- no synched accounts:
5377
+ no plaid accounts:
5076
5378
  value: 0
5077
5379
  - name: recurring_id
5078
5380
  in: query
@@ -5107,7 +5409,7 @@ paths:
5107
5409
  format: int32
5108
5410
  description: Filter transactions to those that have a tag with the specified Tag
5109
5411
  ID
5110
- - name: is_group
5412
+ - name: is_group_parent
5111
5413
  in: query
5112
5414
  schema:
5113
5415
  type: boolean
@@ -5174,6 +5476,14 @@ paths:
5174
5476
  returned transactions objects to include any transactions that were
5175
5477
  split into multiple transactions. Use with caution as this data is
5176
5478
  normally not exposed after the split transactions are created.
5479
+ - name: include_group_children
5480
+ in: query
5481
+ schema:
5482
+ type: boolean
5483
+ default: false
5484
+ description: By default, individual transactions that joined into a transaction group
5485
+ are not included in the response. Set to true if you'd like the
5486
+ returned transactions objects to include any transactions that joined into a transaction group.
5177
5487
  - name: include_children
5178
5488
  in: query
5179
5489
  schema:
@@ -5201,18 +5511,18 @@ paths:
5201
5511
  default: 1000
5202
5512
  description: Sets the maximum number of transactions to return. If more match
5203
5513
  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)
5514
+ attribute set to `true`. See [Pagination](https://alpha.lunchmoney.dev/v2/pagination)
5205
5515
  - name: offset
5206
5516
  in: query
5207
5517
  schema:
5208
5518
  type: integer
5209
5519
  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)
5520
+ automatically in the header. See [Pagination](https://alpha.lunchmoney.dev/v2/pagination)
5211
5521
  responses:
5212
5522
  "200":
5213
5523
  description: Returns an array of transactions. <br><br>The `has_more` property
5214
5524
  is set to `true` if more transactions are available. See
5215
- [Pagination](https://lm-v2-api-next-a7fabcab8e9a.herokuapp.com/v2/pagination)
5525
+ [Pagination](https://alpha.lunchmoney.dev/v2/pagination)
5216
5526
  content:
5217
5527
  application/json:
5218
5528
  schema:
@@ -5241,16 +5551,17 @@ paths:
5241
5551
  to_base: 1250.84
5242
5552
  recurring_id: 994069
5243
5553
  payee: Paycheck
5554
+ original_name: DIRECT DEPOSIT PAYROLL
5244
5555
  category_id: 88
5245
5556
  notes: null
5246
5557
  status: reviewed
5247
5558
  is_pending: false
5248
5559
  created_at: "2024-07-28T17:00:06.192Z"
5249
5560
  updated_at: "2024-07-28T17:00:06.733Z"
5250
- is_parent: false
5251
- parent_id: null
5252
- is_group: false
5253
- group_id: null
5561
+ is_split_parent: false
5562
+ split_parent_id: null
5563
+ is_group_parent: false
5564
+ group_parent_id: null
5254
5565
  manual_account_id: null
5255
5566
  plaid_account_id: 119806
5256
5567
  tag_ids:
@@ -5264,16 +5575,17 @@ paths:
5264
5575
  to_base: 21.98
5265
5576
  recurring_id: null
5266
5577
  payee: Noodle House
5578
+ original_name: NOODLE HOUSE RESTAURANT #5678
5267
5579
  category_id: null
5268
5580
  notes: null
5269
5581
  status: unreviewed
5270
5582
  is_pending: false
5271
5583
  created_at: "2024-07-24T17:00:06.192Z"
5272
5584
  updated_at: "2024-07-24T17:00:06.192Z"
5273
- is_parent: false
5274
- parent_id: null
5275
- is_group: false
5276
- group_id: null
5585
+ is_split_parent: false
5586
+ split_parent_id: null
5587
+ is_group_parent: false
5588
+ group_parent_id: null
5277
5589
  manual_account_id: null
5278
5590
  plaid_account_id: 119805
5279
5591
  tag_ids:
@@ -5287,16 +5599,17 @@ paths:
5287
5599
  to_base: -847.22
5288
5600
  recurring_id: null
5289
5601
  payee: Credit Card Payment
5602
+ original_name: CHASE CREDIT CARD PAYMENT
5290
5603
  category_id: 82
5291
5604
  is_pending: false
5292
5605
  status: reviewed
5293
5606
  notes: null
5294
5607
  created_at: "2024-07-22T17:00:06.192Z"
5295
5608
  updated_at: "2024-07-22T17:00:06.733Z"
5296
- is_parent: false
5297
- parent_id: null
5298
- is_group: false
5299
- group_id: null
5609
+ is_split_parent: false
5610
+ split_parent_id: null
5611
+ is_group_parent: false
5612
+ group_parent_id: null
5300
5613
  manual_account_id: null
5301
5614
  plaid_account_id: 119804
5302
5615
  tag_ids: []
@@ -5309,16 +5622,17 @@ paths:
5309
5622
  to_base: 250
5310
5623
  recurring_id: null
5311
5624
  payee: Fidelity
5625
+ original_name: Fidelity
5312
5626
  category_id: 82
5313
5627
  notes: Transfer from Checking to Fidelity
5314
5628
  status: reviewed
5315
5629
  is_pending: false
5316
5630
  created_at: "2024-07-22T17:00:06.192Z"
5317
5631
  updated_at: "2024-07-22T17:00:06.733Z"
5318
- is_parent: false
5319
- parent_id: null
5320
- is_group: false
5321
- group_id: null
5632
+ is_split_parent: false
5633
+ split_parent_id: null
5634
+ is_group_parent: false
5635
+ group_parent_id: null
5322
5636
  manual_account_id: 119807
5323
5637
  plaid_account_id: null
5324
5638
  tag_ids: []
@@ -5336,16 +5650,17 @@ paths:
5336
5650
  to_base: 1250.84
5337
5651
  recurring_id: 994069
5338
5652
  payee: Paycheck
5653
+ original_name: DIRECT DEPOSIT PAYROLL
5339
5654
  category_id: 88
5340
5655
  notes: null
5341
5656
  status: reviewed
5342
5657
  is_pending: false
5343
5658
  created_at: "2024-07-28T17:00:06.192Z"
5344
5659
  updated_at: "2024-07-28T17:00:06.733Z"
5345
- is_parent: false
5346
- parent_id: null
5347
- is_group: false
5348
- group_id: null
5660
+ is_split_parent: false
5661
+ split_parent_id: null
5662
+ is_group_parent: false
5663
+ group_parent_id: null
5349
5664
  manual_account_id: null
5350
5665
  plaid_account_id: 119806
5351
5666
  tag_ids:
@@ -5359,16 +5674,17 @@ paths:
5359
5674
  to_base: 1250.84
5360
5675
  recurring_id: 994069
5361
5676
  payee: Paycheck
5677
+ original_name: DIRECT DEPOSIT PAYROLL
5362
5678
  category_id: 88
5363
5679
  notes: null
5364
5680
  status: reviewed
5365
5681
  is_pending: false
5366
5682
  created_at: "2024-07-14T17:00:06.192Z"
5367
5683
  updated_at: "2024-07-14T17:00:06.733Z"
5368
- is_parent: false
5369
- parent_id: null
5370
- is_group: true
5371
- group_id: null
5684
+ is_split_parent: false
5685
+ split_parent_id: null
5686
+ is_group_parent: true
5687
+ group_parent_id: null
5372
5688
  manual_account_id: null
5373
5689
  plaid_account_id: 119806
5374
5690
  tag_ids:
@@ -5387,16 +5703,17 @@ paths:
5387
5703
  to_base: 1250.84
5388
5704
  recurring_id: 994069
5389
5705
  payee: Paycheck
5706
+ original_name: DIRECT DEPOSIT PAYROLL
5390
5707
  category_id: 88
5391
5708
  notes: null
5392
5709
  status: reviewed
5393
5710
  is_pending: false
5394
5711
  created_at: "2024-07-28T17:00:06.192Z"
5395
5712
  updated_at: "2024-07-28T17:00:06.733Z"
5396
- is_parent: false
5397
- parent_id: null
5398
- is_group: false
5399
- group_id: null
5713
+ is_split_parent: false
5714
+ split_parent_id: null
5715
+ is_group_parent: false
5716
+ group_parent_id: null
5400
5717
  manual_account_id: null
5401
5718
  plaid_account_id: 119806
5402
5719
  tag_ids:
@@ -5410,16 +5727,17 @@ paths:
5410
5727
  to_base: 21.98
5411
5728
  recurring_id: null
5412
5729
  payee: Noodle House
5730
+ original_name: NOODLE HOUSE RESTAURANT #5678
5413
5731
  category_id: null
5414
5732
  notes: null
5415
5733
  status: unreviewed
5416
5734
  is_pending: false
5417
5735
  created_at: "2024-07-24T17:00:06.192Z"
5418
5736
  updated_at: "2024-07-24T17:00:06.192Z"
5419
- is_parent: false
5420
- parent_id: null
5421
- is_group: false
5422
- group_id: null
5737
+ is_split_parent: false
5738
+ split_parent_id: null
5739
+ is_group_parent: false
5740
+ group_parent_id: null
5423
5741
  manual_account_id: null
5424
5742
  plaid_account_id: 119805
5425
5743
  tag_ids:
@@ -5453,13 +5771,11 @@ paths:
5453
5771
  - transactions (bulk)
5454
5772
  summary: Insert one or more transactions.
5455
5773
  description: >-
5456
- Use this endpoint to add transactions to a budget.
5457
-
5774
+ Use this endpoint to add transactions to a budget.<br><br>
5458
5775
 
5459
5776
  The request body for this endpoint must include a list of transactions
5460
5777
  with at least one transaction and not more than 500 transactions to
5461
- insert.
5462
-
5778
+ insert.<br><br>
5463
5779
 
5464
5780
  The successful request to this endpoint will return a response
5465
5781
  body which will include two arrays:
@@ -5628,9 +5944,9 @@ paths:
5628
5944
  is_pending: false
5629
5945
  created_at: "2024-12-18T04:05:58.072Z"
5630
5946
  updated_at: "2024-12-18T04:05:58.072Z"
5631
- parent_id: null
5632
- is_group: false
5633
- group_id: null
5947
+ split_parent_id: null
5948
+ is_group_parent: false
5949
+ group_parent_id: null
5634
5950
  manual_account_id: null
5635
5951
  plaid_account_id: null
5636
5952
  tag_ids: []
@@ -5655,9 +5971,9 @@ paths:
5655
5971
  is_pending: false
5656
5972
  created_at: "2024-11-20T16:09:11.544Z"
5657
5973
  updated_at: "2024-11-20T16:09:11.544Z"
5658
- parent_id: null
5659
- is_group: false
5660
- group_id: null
5974
+ split_parent_id: null
5975
+ is_group_parent: false
5976
+ group_parent_id: null
5661
5977
  manual_account_id: null
5662
5978
  plaid_account_id: null
5663
5979
  tag_ids: []
@@ -5682,9 +5998,9 @@ paths:
5682
5998
  is_pending: false
5683
5999
  created_at: "2024-11-20T16:10:23.395Z"
5684
6000
  updated_at: "2024-11-20T16:10:23.395Z"
5685
- parent_id: null
5686
- is_group: false
5687
- group_id: null
6001
+ split_parent_id: null
6002
+ is_group_parent: false
6003
+ group_parent_id: null
5688
6004
  manual_account_id: null
5689
6005
  plaid_account_id: null
5690
6006
  tag_ids: []
@@ -5705,9 +6021,9 @@ paths:
5705
6021
  is_pending: false
5706
6022
  created_at: "2024-11-20T16:10:23.395Z"
5707
6023
  updated_at: "2024-11-20T16:10:23.395Z"
5708
- parent_id: null
5709
- is_group: false
5710
- group_id: null
6024
+ split_parent_id: null
6025
+ is_group_parent: false
6026
+ group_parent_id: null
5711
6027
  manual_account_id: null
5712
6028
  plaid_account_id: null
5713
6029
  tag_ids: []
@@ -5732,9 +6048,9 @@ paths:
5732
6048
  is_pending: false
5733
6049
  created_at: "2024-11-20T16:15:19.475Z"
5734
6050
  updated_at: "2024-11-20T16:15:19.475Z"
5735
- parent_id: null
5736
- is_group: false
5737
- group_id: null
6051
+ split_parent_id: null
6052
+ is_group_parent: false
6053
+ group_parent_id: null
5738
6054
  manual_account_id: 219807
5739
6055
  plaid_account_id: null
5740
6056
  tag_ids: []
@@ -5768,9 +6084,9 @@ paths:
5768
6084
  is_pending: false
5769
6085
  created_at: "2025-07-18T14:15:23.159Z"
5770
6086
  updated_at: "2025-07-18T14:15:23.159Z"
5771
- parent_id: null
5772
- is_group: false
5773
- group_id: null
6087
+ split_parent_id: null
6088
+ is_group_parent: false
6089
+ group_parent_id: null
5774
6090
  manual_account_id: 219807
5775
6091
  plaid_account_id: null
5776
6092
  tag_ids: []
@@ -5814,9 +6130,9 @@ paths:
5814
6130
  is_pending: false
5815
6131
  created_at: "2025-07-18T14:05:29.253Z"
5816
6132
  updated_at: "2025-07-18T14:05:29.253Z"
5817
- parent_id: null
5818
- is_group: false
5819
- group_id: null
6133
+ split_parent_id: null
6134
+ is_group_parent: false
6135
+ group_parent_id: null
5820
6136
  manual_account_id: 219807
5821
6137
  plaid_account_id: null
5822
6138
  tag_ids: []
@@ -5905,7 +6221,7 @@ paths:
5905
6221
  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
6222
 
5907
6223
  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>
6224
+ 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
6225
 
5910
6226
  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
6227
 
@@ -5965,10 +6281,10 @@ paths:
5965
6281
  is_pending: false
5966
6282
  created_at: "2025-07-17T17:00:06.192Z"
5967
6283
  updated_at: "2025-07-17T17:00:06.192Z"
5968
- is_parent: false
5969
- parent_id: null
5970
- is_group: false
5971
- group_id: null
6284
+ is_split_parent: false
6285
+ split_parent_id: null
6286
+ is_group_parent: false
6287
+ group_parent_id: null
5972
6288
  manual_account_id: null
5973
6289
  plaid_account_id: null
5974
6290
  tag_ids:
@@ -6029,10 +6345,10 @@ paths:
6029
6345
  is_pending: false
6030
6346
  created_at: "2025-06-24T17:00:06.192Z"
6031
6347
  updated_at: "2025-06-24T17:00:06.192Z"
6032
- is_parent: false
6033
- parent_id: null
6034
- is_group: false
6035
- group_id: null
6348
+ is_split_parent: false
6349
+ split_parent_id: null
6350
+ is_group_parent: false
6351
+ group_parent_id: null
6036
6352
  manual_account_id: null
6037
6353
  plaid_account_id: 119805
6038
6354
  tag_ids:
@@ -6053,10 +6369,10 @@ paths:
6053
6369
  is_pending: false
6054
6370
  created_at: "2025-06-18T17:00:06.192Z"
6055
6371
  updated_at: "2025-06-18T17:00:06.192Z"
6056
- is_parent: false
6057
- parent_id: null
6058
- is_group: false
6059
- group_id: null
6372
+ is_split_parent: false
6373
+ split_parent_id: null
6374
+ is_group_parent: false
6375
+ group_parent_id: null
6060
6376
  manual_account_id: null
6061
6377
  plaid_account_id: null
6062
6378
  tag_ids:
@@ -6077,10 +6393,10 @@ paths:
6077
6393
  is_pending: false
6078
6394
  created_at: "2025-06-12T17:00:06.192Z"
6079
6395
  updated_at: "2025-06-12T17:00:06.733Z"
6080
- is_parent: false
6081
- parent_id: null
6082
- is_group: false
6083
- group_id: null
6396
+ is_split_parent: false
6397
+ split_parent_id: null
6398
+ is_group_parent: false
6399
+ group_parent_id: null
6084
6400
  manual_account_id: null
6085
6401
  plaid_account_id: 119807
6086
6402
  tag_ids: []
@@ -6103,10 +6419,10 @@ paths:
6103
6419
  is_pending: false
6104
6420
  created_at: "2025-07-17T17:00:06.192Z"
6105
6421
  updated_at: "2025-07-17T17:00:06.192Z"
6106
- is_parent: false
6107
- parent_id: null
6108
- is_group: false
6109
- group_id: null
6422
+ is_split_parent: false
6423
+ split_parent_id: null
6424
+ is_group_parent: false
6425
+ group_parent_id: null
6110
6426
  manual_account_id: null
6111
6427
  plaid_account_id: null
6112
6428
  tag_ids:
@@ -6127,10 +6443,10 @@ paths:
6127
6443
  is_pending: false
6128
6444
  created_at: "2025-06-18T17:00:06.192Z"
6129
6445
  updated_at: "2025-06-18T17:00:06.192Z"
6130
- is_parent: false
6131
- parent_id: null
6132
- is_group: false
6133
- group_id: null
6446
+ is_split_parent: false
6447
+ split_parent_id: null
6448
+ is_group_parent: false
6449
+ group_parent_id: null
6134
6450
  manual_account_id: null
6135
6451
  plaid_account_id: null
6136
6452
  tag_ids:
@@ -6385,11 +6701,11 @@ paths:
6385
6701
  transaction.
6386
6702
 
6387
6703
 
6388
- If `is_group` is true in the returned transaction, the object will also
6704
+ If `is_group_parent` is true in the returned transaction, the object will also
6389
6705
  include the `children` property which will contain a list of the
6390
6706
  original transactions that make up the transaction group.<br>
6391
6707
 
6392
- If `is_parent` is true in the returned transaction, the object will also
6708
+ If `is_split_parent` is true in the returned transaction, the object will also
6393
6709
  include the `children` property which will contain a list
6394
6710
  of the split transactions.
6395
6711
  operationId: getTransactionById
@@ -6431,16 +6747,17 @@ paths:
6431
6747
  to_base: 21.98
6432
6748
  recurring_id: null
6433
6749
  payee: Noodle House
6750
+ original_name: NOODLE HOUSE RESTAURANT #5678
6434
6751
  category_id: null
6435
6752
  notes: null
6436
6753
  status: unreviewed
6437
6754
  is_pending: false
6438
6755
  created_at: "2024-07-24T17:00:06.192Z"
6439
6756
  updated_at: "2024-07-24T17:00:06.192Z"
6440
- parent_id: null
6757
+ split_parent_id: null
6441
6758
  children: []
6442
- is_group: false
6443
- group_id: null
6759
+ is_group_parent: false
6760
+ group_parent_id: null
6444
6761
  manual_account_id: null
6445
6762
  plaid_account_id: 119805
6446
6763
  tag_ids: []
@@ -6455,16 +6772,17 @@ paths:
6455
6772
  to_base: 1250.84
6456
6773
  recurring_id: 994069
6457
6774
  payee: Paycheck
6775
+ original_name: DIRECT DEPOSIT PAYROLL
6458
6776
  category_id: null
6459
6777
  notes: null
6460
6778
  status: pending
6461
6779
  is_pending: true
6462
6780
  created_at: "2025-05-28T17:00:06.192Z"
6463
6781
  updated_at: "2025-05-28T17:00:06.733Z"
6464
- is_parent: false
6465
- parent_id: null
6466
- is_group: false
6467
- group_id: null
6782
+ is_split_parent: false
6783
+ split_parent_id: null
6784
+ is_group_parent: false
6785
+ group_parent_id: null
6468
6786
  manual_account_id: null
6469
6787
  plaid_account_id: 119806
6470
6788
  tag_ids:
@@ -6492,15 +6810,16 @@ paths:
6492
6810
  to_base: 25.69
6493
6811
  recurring_id: null
6494
6812
  payee: Valero
6813
+ original_name: Valero
6495
6814
  category_id: 315174
6496
6815
  notes: Net Gas for roadtrip
6497
6816
  status: reviewed
6498
6817
  is_pending: false
6499
6818
  created_at: "2025-05-17T17:00:06.192Z"
6500
6819
  updated_at: "2025-05-17T17:00:06.733Z"
6501
- parent_id: null
6502
- is_group: true
6503
- group_id: null
6820
+ split_parent_id: null
6821
+ is_group_parent: true
6822
+ group_parent_id: null
6504
6823
  manual_account_id: null
6505
6824
  plaid_account_id: null
6506
6825
  tag_ids:
@@ -6516,16 +6835,17 @@ paths:
6516
6835
  to_base: 25
6517
6836
  recurring_id: null
6518
6837
  payee: Me
6838
+ original_name: Me
6519
6839
  category_id: 315174
6520
6840
  notes: Gas repay from Tim for roadtrip
6521
6841
  status: reviewed
6522
6842
  is_pending: false
6523
6843
  created_at: "2025-05-17T17:00:06.192Z"
6524
6844
  updated_at: "2025-05-17T17:00:06.733Z"
6525
- is_parent: false
6526
- parent_id: null
6527
- is_group: false
6528
- group_id: 2112140959
6845
+ is_split_parent: false
6846
+ split_parent_id: null
6847
+ is_group_parent: false
6848
+ group_parent_id: 2112140959
6529
6849
  manual_account_id: null
6530
6850
  plaid_account_id: null
6531
6851
  tag_ids:
@@ -6546,10 +6866,10 @@ paths:
6546
6866
  is_pending: false
6547
6867
  created_at: "2025-05-16T17:00:06.192Z"
6548
6868
  updated_at: "2025-05-16T17:00:06.192Z"
6549
- is_parent: false
6550
- parent_id: null
6551
- is_group: false
6552
- group_id: 2112140959
6869
+ is_split_parent: false
6870
+ split_parent_id: null
6871
+ is_group_parent: false
6872
+ group_parent_id: 2112140959
6553
6873
  manual_account_id: null
6554
6874
  plaid_account_id: null
6555
6875
  tag_ids:
@@ -6570,10 +6890,10 @@ paths:
6570
6890
  is_pending: false
6571
6891
  created_at: "2025-05-15T17:00:06.192Z"
6572
6892
  updated_at: "2025-05-15T17:00:06.733Z"
6573
- is_parent: false
6574
- parent_id: null
6575
- is_group: false
6576
- group_id: 2112140959
6893
+ is_split_parent: false
6894
+ split_parent_id: null
6895
+ is_group_parent: false
6896
+ group_parent_id: 2112140959
6577
6897
  manual_account_id: null
6578
6898
  plaid_account_id: 119805
6579
6899
  tag_ids:
@@ -6624,7 +6944,7 @@ paths:
6624
6944
  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
6945
 
6626
6946
  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>
6947
+ 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
6948
 
6629
6949
  It is also possible to provide only the properties to be updated in the
6630
6950
  request body, as long as the request includes at least one of the
@@ -6679,10 +6999,10 @@ paths:
6679
6999
  is_pending: false
6680
7000
  created_at: "2024-12-09T17:00:06.192Z"
6681
7001
  updated_at: "2024-12-09T17:00:06.733Z"
6682
- is_parent: false
6683
- parent_id: null
6684
- is_group: false
6685
- group_id: null
7002
+ is_split_parent: false
7003
+ split_parent_id: null
7004
+ is_group_parent: false
7005
+ group_parent_id: null
6686
7006
  manual_account_id: null
6687
7007
  plaid_account_id: 119810
6688
7008
  tag_ids: []
@@ -6711,10 +7031,10 @@ paths:
6711
7031
  is_pending: false
6712
7032
  created_at: "2024-12-09T17:00:06.192Z"
6713
7033
  updated_at: "2024-12-09T17:00:06.733Z"
6714
- is_parent: false
6715
- parent_id: null
6716
- is_group: false
6717
- group_id: null
7034
+ is_split_parent: false
7035
+ split_parent_id: null
7036
+ is_group_parent: false
7037
+ group_parent_id: null
6718
7038
  manual_account_id: null
6719
7039
  plaid_account_id: 119810
6720
7040
  tag_ids: []
@@ -6934,9 +7254,9 @@ paths:
6934
7254
  is_pending: false
6935
7255
  created_at: "2024-12-18T14:45:03.366Z"
6936
7256
  updated_at: "2024-12-18T14:45:03.366Z"
6937
- parent_id: null
6938
- is_group: true
6939
- group_id: null
7257
+ split_parent_id: null
7258
+ is_group_parent: true
7259
+ group_parent_id: null
6940
7260
  manual_account_id: null
6941
7261
  plaid_account_id: null
6942
7262
  tag_ids: []
@@ -6957,10 +7277,10 @@ paths:
6957
7277
  is_pending: false
6958
7278
  created_at: "2024-11-10T17:00:06.192Z"
6959
7279
  updated_at: "2024-11-10T17:00:06.733Z"
6960
- is_parent: false
6961
- parent_id: null
6962
- is_group: false
6963
- group_id: 123456789
7280
+ is_split_parent: false
7281
+ split_parent_id: null
7282
+ is_group_parent: false
7283
+ group_parent_id: 123456789
6964
7284
  manual_account_id: null
6965
7285
  plaid_account_id: 119809
6966
7286
  tag_ids: []
@@ -6979,10 +7299,10 @@ paths:
6979
7299
  is_pending: false
6980
7300
  created_at: "2024-11-09T17:00:06.192Z"
6981
7301
  updated_at: "2024-11-09T17:00:06.733Z"
6982
- is_parent: false
6983
- parent_id: null
6984
- is_group: false
6985
- group_id: 123456789
7302
+ is_split_parent: false
7303
+ split_parent_id: null
7304
+ is_group_parent: false
7305
+ group_parent_id: 123456789
6986
7306
  manual_account_id: null
6987
7307
  plaid_account_id: 119810
6988
7308
  tag_ids: []
@@ -7004,9 +7324,9 @@ paths:
7004
7324
  is_pending: false
7005
7325
  created_at: "2025-11-13T21:39:27.609Z"
7006
7326
  updated_at: "2025-11-13T21:39:27.609Z"
7007
- parent_id: null
7008
- is_group: true
7009
- group_id: null
7327
+ split_parent_id: null
7328
+ is_group_parent: true
7329
+ group_parent_id: null
7010
7330
  manual_account_id: null
7011
7331
  plaid_account_id: null
7012
7332
  tag_ids: [94318]
@@ -7027,10 +7347,10 @@ paths:
7027
7347
  is_pending: false
7028
7348
  created_at: "2025-10-22T17:00:06.192Z"
7029
7349
  updated_at: "2025-10-22T17:00:06.733Z"
7030
- is_parent: false
7031
- parent_id: null
7032
- is_group: false
7033
- group_id: 123456789
7350
+ is_split_parent: false
7351
+ split_parent_id: null
7352
+ is_group_parent: false
7353
+ group_parent_id: 123456789
7034
7354
  manual_account_id: null
7035
7355
  plaid_account_id: 119804
7036
7356
  tag_ids: []
@@ -7050,10 +7370,10 @@ paths:
7050
7370
  is_pending: false
7051
7371
  created_at: "2025-10-21T17:00:06.192Z"
7052
7372
  updated_at: "2025-10-21T17:00:06.733Z"
7053
- is_parent: false
7054
- parent_id: null
7055
- is_group: false
7056
- group_id: 123456789
7373
+ is_split_parent: false
7374
+ split_parent_id: null
7375
+ is_group_parent: false
7376
+ group_parent_id: 123456789
7057
7377
  manual_account_id: null
7058
7378
  plaid_account_id: 119806
7059
7379
  tag_ids: []
@@ -7105,7 +7425,7 @@ paths:
7105
7425
  - errMsg: "Transaction with id 2112150647 is in a transaction group already and cannot be added to another transaction group."
7106
7426
  ids_index: 1
7107
7427
  id: 2112150647
7108
- group_id: 2112140959
7428
+ group_parent_id: 2112140959
7109
7429
  recurring transactions:
7110
7430
  value:
7111
7431
  message: Request Validation Failure
@@ -7181,7 +7501,7 @@ paths:
7181
7501
 
7182
7502
  To see the details of the original parent transaction after it has been
7183
7503
  split, use the `GET /transactions/{id}` endpoint and pass the value of
7184
- the `parent_id` of one of the children.
7504
+ the `split_parent_id` of one of the children.
7185
7505
  operationId: splitTransaction
7186
7506
  parameters:
7187
7507
  - name: id
@@ -7257,10 +7577,10 @@ paths:
7257
7577
  is_pending: false
7258
7578
  created_at: "2024-10-19T17:00:06.192Z"
7259
7579
  updated_at: "2024-11-30T22:25:53.232Z"
7260
- parent_id: null
7261
- is_parent: true
7262
- is_group: false
7263
- group_id: null
7580
+ split_parent_id: null
7581
+ is_split_parent: true
7582
+ is_group_parent: false
7583
+ group_parent_id: null
7264
7584
  manual_account_id: null
7265
7585
  plaid_account_id: 119805
7266
7586
  tag_ids: []
@@ -7280,10 +7600,10 @@ paths:
7280
7600
  is_pending: false
7281
7601
  created_at: "2024-11-30T22:25:53.232Z"
7282
7602
  updated_at: "2024-11-30T22:25:53.232Z"
7283
- is_parent: false
7284
- parent_id: null
7285
- is_group: false
7286
- group_id: null
7603
+ is_split_parent: false
7604
+ split_parent_id: null
7605
+ is_group_parent: false
7606
+ group_parent_id: null
7287
7607
  manual_account_id: null
7288
7608
  plaid_account_id: 119805
7289
7609
  tag_ids: []
@@ -7302,10 +7622,10 @@ paths:
7302
7622
  is_pending: false
7303
7623
  created_at: "2024-11-30T22:25:53.232Z"
7304
7624
  updated_at: "2024-11-30T22:25:53.232Z"
7305
- is_parent: false
7306
- parent_id: null
7307
- is_group: false
7308
- group_id: null
7625
+ is_split_parent: false
7626
+ split_parent_id: null
7627
+ is_group_parent: false
7628
+ group_parent_id: null
7309
7629
  manual_account_id: null
7310
7630
  plaid_account_id: 119805
7311
7631
  tag_ids: []
@@ -7380,7 +7700,7 @@ paths:
7380
7700
  Deletes the split children of a previously split transactions and
7381
7701
  restores the parent transactions to the normal unsplit state.<br><br>
7382
7702
 
7383
- Use the value of the `parent_id`property of a split transaction to
7703
+ Use the value of the `split_parent_id`property of a split transaction to
7384
7704
  specify the parent ID.
7385
7705
  operationId: unsplitTransaction
7386
7706
  parameters: