ynab 3.9.0 → 4.9.0

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.
Files changed (195) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +1 -0
  3. data/Gemfile.lock +3 -1
  4. data/README.md +47 -39
  5. data/Rakefile +1 -1
  6. data/docs/Account.md +3 -3
  7. data/docs/AccountsApi.md +12 -12
  8. data/docs/CategoriesApi.md +89 -25
  9. data/docs/Category.md +4 -3
  10. data/docs/CategoryGroupWithCategories.md +1 -1
  11. data/docs/ExistingCategory.md +12 -0
  12. data/docs/MoneyMovement.md +16 -0
  13. data/docs/MoneyMovementGroup.md +12 -0
  14. data/docs/MoneyMovementGroupsResponse.md +8 -0
  15. data/docs/MoneyMovementGroupsResponseData.md +9 -0
  16. data/docs/MoneyMovementsApi.md +89 -0
  17. data/docs/{BudgetSettingsResponse.md → MoneyMovementsResponse.md} +2 -2
  18. data/docs/MoneyMovementsResponseData.md +9 -0
  19. data/docs/MonthDetail.md +2 -2
  20. data/docs/MonthSummary.md +1 -1
  21. data/docs/MonthsApi.md +13 -13
  22. data/docs/NewCategory.md +12 -0
  23. data/docs/PatchCategoryGroupWrapper.md +8 -0
  24. data/docs/PatchCategoryWrapper.md +1 -1
  25. data/docs/PayeeLocationsApi.md +12 -12
  26. data/docs/PayeesApi.md +11 -11
  27. data/docs/{BudgetDetail.md → PlanDetail.md} +4 -4
  28. data/docs/PlanDetailResponse.md +8 -0
  29. data/docs/{BudgetDetailResponseData.md → PlanDetailResponseData.md} +2 -2
  30. data/docs/{BudgetSettings.md → PlanSettings.md} +1 -1
  31. data/docs/{BudgetDetailResponse.md → PlanSettingsResponse.md} +2 -2
  32. data/docs/PlanSettingsResponseData.md +8 -0
  33. data/docs/PlanSummary.md +15 -0
  34. data/docs/PlanSummaryResponse.md +8 -0
  35. data/docs/PlanSummaryResponseData.md +9 -0
  36. data/docs/PlansApi.md +68 -0
  37. data/docs/PostCategoryGroupWrapper.md +8 -0
  38. data/docs/PostCategoryWrapper.md +8 -0
  39. data/docs/SaveCategory.md +2 -1
  40. data/docs/SaveCategoryGroup.md +8 -0
  41. data/docs/SaveCategoryGroupResponse.md +8 -0
  42. data/docs/SaveCategoryGroupResponseData.md +9 -0
  43. data/docs/SaveMonthCategory.md +1 -1
  44. data/docs/ScheduledTransactionsApi.md +20 -20
  45. data/docs/TransactionsApi.md +48 -48
  46. data/docs/UserApi.md +2 -2
  47. data/examples/category-balance.rb +2 -2
  48. data/examples/create-multiple-transactions.rb +2 -2
  49. data/examples/create-transaction.rb +2 -2
  50. data/examples/{budget-list.rb → plan-list.rb} +6 -6
  51. data/examples/{budget-month.rb → plan-month.rb} +9 -10
  52. data/examples/update-category-budgeted.rb +2 -2
  53. data/examples/update-multiple-transactions.rb +3 -3
  54. data/lib/ynab/api/accounts_api.rb +33 -34
  55. data/lib/ynab/api/categories_api.rb +293 -66
  56. data/lib/ynab/api/deprecated_api.rb +11 -11
  57. data/lib/ynab/api/money_movements_api.rb +282 -0
  58. data/lib/ynab/api/months_api.rb +35 -36
  59. data/lib/ynab/api/payee_locations_api.rb +33 -34
  60. data/lib/ynab/api/payees_api.rb +31 -32
  61. data/lib/ynab/api/{budgets_api.rb → plans_api.rb} +54 -55
  62. data/lib/ynab/api/scheduled_transactions_api.rb +55 -56
  63. data/lib/ynab/api/transactions_api.rb +130 -131
  64. data/lib/ynab/api/user_api.rb +2 -3
  65. data/lib/ynab/api_client.rb +0 -2
  66. data/lib/ynab/api_model_base.rb +85 -0
  67. data/lib/ynab/models/account.rb +4 -81
  68. data/lib/ynab/models/account_response.rb +1 -75
  69. data/lib/ynab/models/account_response_data.rb +1 -75
  70. data/lib/ynab/models/accounts_response.rb +1 -75
  71. data/lib/ynab/models/accounts_response_data.rb +1 -75
  72. data/lib/ynab/models/bulk_response.rb +1 -75
  73. data/lib/ynab/models/bulk_response_data.rb +1 -75
  74. data/lib/ynab/models/bulk_response_data_bulk.rb +1 -75
  75. data/lib/ynab/models/bulk_transactions.rb +1 -75
  76. data/lib/ynab/models/categories_response.rb +1 -75
  77. data/lib/ynab/models/categories_response_data.rb +1 -75
  78. data/lib/ynab/models/category.rb +16 -79
  79. data/lib/ynab/models/category_group.rb +1 -75
  80. data/lib/ynab/models/category_group_with_categories.rb +2 -76
  81. data/lib/ynab/models/category_response.rb +1 -75
  82. data/lib/ynab/models/category_response_data.rb +1 -75
  83. data/lib/ynab/models/currency_format.rb +2 -76
  84. data/lib/ynab/models/date_format.rb +2 -76
  85. data/lib/ynab/models/error_detail.rb +1 -75
  86. data/lib/ynab/models/error_response.rb +1 -75
  87. data/lib/ynab/models/existing_category.rb +180 -0
  88. data/lib/ynab/models/existing_transaction.rb +1 -79
  89. data/lib/ynab/models/hybrid_transaction.rb +1 -85
  90. data/lib/ynab/models/hybrid_transactions_response.rb +1 -75
  91. data/lib/ynab/models/hybrid_transactions_response_data.rb +1 -75
  92. data/lib/ynab/models/money_movement.rb +223 -0
  93. data/lib/ynab/models/money_movement_group.rb +179 -0
  94. data/lib/ynab/models/{budget_summary_response.rb → money_movement_groups_response.rb} +4 -78
  95. data/lib/ynab/models/money_movement_groups_response_data.rb +149 -0
  96. data/lib/ynab/models/{budget_settings_response.rb → money_movements_response.rb} +4 -78
  97. data/lib/ynab/models/money_movements_response_data.rb +149 -0
  98. data/lib/ynab/models/month_detail.rb +3 -79
  99. data/lib/ynab/models/month_detail_response.rb +1 -75
  100. data/lib/ynab/models/month_detail_response_data.rb +1 -75
  101. data/lib/ynab/models/month_summaries_response.rb +1 -75
  102. data/lib/ynab/models/month_summaries_response_data.rb +1 -75
  103. data/lib/ynab/models/month_summary.rb +2 -76
  104. data/lib/ynab/models/new_category.rb +180 -0
  105. data/lib/ynab/models/new_transaction.rb +1 -79
  106. data/lib/ynab/models/patch_category_group_wrapper.rb +136 -0
  107. data/lib/ynab/models/patch_category_wrapper.rb +2 -76
  108. data/lib/ynab/models/patch_month_category_wrapper.rb +1 -75
  109. data/lib/ynab/models/patch_payee_wrapper.rb +1 -75
  110. data/lib/ynab/models/patch_transactions_wrapper.rb +1 -75
  111. data/lib/ynab/models/payee.rb +1 -75
  112. data/lib/ynab/models/payee_location.rb +1 -75
  113. data/lib/ynab/models/payee_location_response.rb +1 -75
  114. data/lib/ynab/models/payee_location_response_data.rb +1 -75
  115. data/lib/ynab/models/payee_locations_response.rb +1 -75
  116. data/lib/ynab/models/payee_locations_response_data.rb +1 -75
  117. data/lib/ynab/models/payee_response.rb +1 -75
  118. data/lib/ynab/models/payee_response_data.rb +1 -75
  119. data/lib/ynab/models/payees_response.rb +1 -75
  120. data/lib/ynab/models/payees_response_data.rb +1 -75
  121. data/lib/ynab/models/{budget_detail.rb → plan_detail.rb} +7 -83
  122. data/lib/ynab/models/plan_detail_response.rb +136 -0
  123. data/lib/ynab/models/{budget_detail_response_data.rb → plan_detail_response_data.rb} +4 -78
  124. data/lib/ynab/models/{budget_settings.rb → plan_settings.rb} +5 -79
  125. data/lib/ynab/models/{budget_detail_response.rb → plan_settings_response.rb} +4 -78
  126. data/lib/ynab/models/{budget_settings_response_data.rb → plan_settings_response_data.rb} +4 -78
  127. data/lib/ynab/models/{budget_summary.rb → plan_summary.rb} +7 -83
  128. data/lib/ynab/models/plan_summary_response.rb +136 -0
  129. data/lib/ynab/models/{budget_summary_response_data.rb → plan_summary_response_data.rb} +5 -79
  130. data/lib/ynab/models/post_account_wrapper.rb +1 -75
  131. data/lib/ynab/models/post_category_group_wrapper.rb +136 -0
  132. data/lib/ynab/models/post_category_wrapper.rb +136 -0
  133. data/lib/ynab/models/post_scheduled_transaction_wrapper.rb +1 -75
  134. data/lib/ynab/models/post_transactions_wrapper.rb +1 -75
  135. data/lib/ynab/models/put_scheduled_transaction_wrapper.rb +1 -75
  136. data/lib/ynab/models/put_transaction_wrapper.rb +1 -75
  137. data/lib/ynab/models/save_account.rb +1 -75
  138. data/lib/ynab/models/save_category.rb +18 -81
  139. data/lib/ynab/models/save_category_group.rb +148 -0
  140. data/lib/ynab/models/save_category_group_response.rb +136 -0
  141. data/lib/ynab/models/save_category_group_response_data.rb +147 -0
  142. data/lib/ynab/models/save_category_response.rb +1 -75
  143. data/lib/ynab/models/save_category_response_data.rb +1 -75
  144. data/lib/ynab/models/save_month_category.rb +2 -76
  145. data/lib/ynab/models/save_payee.rb +1 -75
  146. data/lib/ynab/models/save_payee_response.rb +1 -75
  147. data/lib/ynab/models/save_payee_response_data.rb +1 -75
  148. data/lib/ynab/models/save_scheduled_transaction.rb +1 -75
  149. data/lib/ynab/models/save_sub_transaction.rb +1 -75
  150. data/lib/ynab/models/save_transaction_with_id_or_import_id.rb +1 -79
  151. data/lib/ynab/models/save_transaction_with_optional_fields.rb +1 -75
  152. data/lib/ynab/models/save_transactions_response.rb +1 -75
  153. data/lib/ynab/models/save_transactions_response_data.rb +1 -75
  154. data/lib/ynab/models/scheduled_sub_transaction.rb +1 -75
  155. data/lib/ynab/models/scheduled_transaction_detail.rb +1 -80
  156. data/lib/ynab/models/scheduled_transaction_response.rb +1 -75
  157. data/lib/ynab/models/scheduled_transaction_response_data.rb +1 -75
  158. data/lib/ynab/models/scheduled_transaction_summary.rb +1 -75
  159. data/lib/ynab/models/scheduled_transactions_response.rb +1 -75
  160. data/lib/ynab/models/scheduled_transactions_response_data.rb +1 -75
  161. data/lib/ynab/models/sub_transaction.rb +1 -75
  162. data/lib/ynab/models/transaction_detail.rb +1 -85
  163. data/lib/ynab/models/transaction_response.rb +1 -75
  164. data/lib/ynab/models/transaction_response_data.rb +1 -75
  165. data/lib/ynab/models/transaction_summary.rb +1 -75
  166. data/lib/ynab/models/transactions_import_response.rb +1 -75
  167. data/lib/ynab/models/transactions_import_response_data.rb +1 -75
  168. data/lib/ynab/models/transactions_response.rb +1 -75
  169. data/lib/ynab/models/transactions_response_data.rb +1 -75
  170. data/lib/ynab/models/user.rb +1 -75
  171. data/lib/ynab/models/user_response.rb +1 -75
  172. data/lib/ynab/models/user_response_data.rb +1 -75
  173. data/lib/ynab/overrides/transactions_api.rb +6 -6
  174. data/lib/ynab/version.rb +1 -1
  175. data/lib/ynab.rb +28 -13
  176. data/open_api_spec.yaml +1155 -910
  177. data/spec/api/accounts_spec.rb +9 -9
  178. data/spec/api/categories_spec.rb +9 -9
  179. data/spec/api/months_spec.rb +7 -7
  180. data/spec/api/payee_locations_spec.rb +7 -7
  181. data/spec/api/payees_spec.rb +7 -7
  182. data/spec/api/{budgets_spec.rb → plans_spec.rb} +12 -12
  183. data/spec/api/scheduled_transactions_spec.rb +9 -9
  184. data/spec/api/transactions_spec.rb +27 -27
  185. data/spec/fixtures/vcr_cassettes/plans.yml +49 -0
  186. data/spec/fixtures/vcr_cassettes/plans_unauthorized.yml +49 -0
  187. data/templates/gem.mustache +3 -2
  188. data/templates/partial_model_generic.mustache +1 -1
  189. data/ynab.gemspec +1 -2
  190. metadata +62 -27
  191. data/docs/BudgetSettingsResponseData.md +0 -8
  192. data/docs/BudgetSummary.md +0 -15
  193. data/docs/BudgetSummaryResponse.md +0 -8
  194. data/docs/BudgetSummaryResponseData.md +0 -9
  195. data/docs/BudgetsApi.md +0 -68
data/open_api_spec.yaml CHANGED
@@ -1,48 +1,47 @@
1
- openapi: 3.0.0
1
+ openapi: 3.1.1
2
2
  info:
3
3
  title: YNAB API Endpoints
4
- description: >-
5
- Our API uses a REST based design, leverages the JSON data format, and relies
6
- upon HTTPS for transport. We respond with meaningful HTTP response codes and
7
- if an error occurs, we include error details in the response body. API
8
- Documentation is at https://api.ynab.com
9
- version: 1.76.0
4
+ description: Our API uses a REST based design, leverages the JSON data format,
5
+ and relies upon HTTPS for transport. We respond with meaningful HTTP
6
+ response codes and if an error occurs, we include error details in the
7
+ response body. API Documentation is at https://api.ynab.com
8
+ version: 1.78.0
10
9
  servers:
11
10
  - url: https://api.ynab.com/v1
12
11
  security:
13
12
  - bearer: []
14
13
  tags:
15
14
  - name: User
16
- - name: Budgets
15
+ - name: Plans
17
16
  - name: Accounts
18
- description: The accounts for a budget
17
+ description: The accounts for a plan
19
18
  - name: Categories
20
- description: The categories for a budget
19
+ description: The categories for a plan
21
20
  - name: Payees
22
- description: The payees for a budget
21
+ description: The payees for a plan
23
22
  - name: Payee Locations
24
- description: >-
25
- When you enter a transaction and specify a payee on the YNAB mobile apps,
26
- the GPS coordinates for that location are stored, with your permission, so
27
- that the next time you are in the same place (like the Grocery store) we
28
- can pre-populate nearby payees for you! It’s handy and saves you time.
29
- This resource makes these locations available. Locations will not be
30
- available for all payees.
23
+ description: When you enter a transaction and specify a payee on the YNAB mobile
24
+ apps, the GPS coordinates for that location are stored, with your
25
+ permission, so that the next time you are in the same place (like the
26
+ Grocery store) we can pre-populate nearby payees for you! It’s handy and
27
+ saves you time. This resource makes these locations available. Locations
28
+ will not be available for all payees.
31
29
  - name: Months
32
- description: >-
33
- Each budget contains one or more months, which is where Ready to Assign,
34
- Age of Money and category (budgeted / activity / balances) amounts are
35
- available.
30
+ description: Each plan contains one or more months, which is where Ready to
31
+ Assign, Age of Money and category (assigned / activity / available)
32
+ amounts are available.
33
+ - name: Money Movements
34
+ description: The money movements for a plan
36
35
  - name: Transactions
37
- description: The transactions for a budget
36
+ description: The transactions for a plan
38
37
  - name: Scheduled Transactions
39
- description: The scheduled transactions for a budget
38
+ description: The scheduled transactions for a plan
40
39
  paths:
41
40
  /user:
42
41
  get:
43
42
  tags:
44
43
  - User
45
- summary: User info
44
+ summary: Get user
46
45
  description: Returns authenticated user information
47
46
  operationId: getUser
48
47
  responses:
@@ -52,148 +51,118 @@ paths:
52
51
  application/json:
53
52
  schema:
54
53
  $ref: "#/components/schemas/UserResponse"
55
- default:
56
- description: An error occurred
57
- content:
58
- application/json:
59
- schema:
60
- $ref: "#/components/schemas/ErrorResponse"
61
54
  /budgets:
62
55
  get:
63
56
  tags:
64
- - Budgets
65
- summary: List budgets
66
- description: Returns budgets list with summary information
67
- operationId: getBudgets
57
+ - Plans
58
+ summary: Get all plans
59
+ description: Returns plans list with summary information
60
+ operationId: getPlans
68
61
  parameters:
69
62
  - name: include_accounts
70
63
  in: query
71
- description: Whether to include the list of budget accounts
64
+ description: Whether to include the list of plan accounts
72
65
  schema:
73
66
  type: boolean
74
67
  responses:
75
68
  "200":
76
- description: The list of budgets
69
+ description: The list of plans
77
70
  content:
78
71
  application/json:
79
72
  schema:
80
- $ref: "#/components/schemas/BudgetSummaryResponse"
73
+ $ref: "#/components/schemas/PlanSummaryResponse"
81
74
  "404":
82
- description: No budgets were found
75
+ description: No plans were found
83
76
  content:
84
77
  application/json:
85
78
  schema:
86
79
  $ref: "#/components/schemas/ErrorResponse"
87
- default:
88
- description: An error occurred
89
- content:
90
- application/json:
91
- schema:
92
- $ref: "#/components/schemas/ErrorResponse"
93
- /budgets/{budget_id}:
80
+ /budgets/{plan_id}:
94
81
  get:
95
82
  tags:
96
- - Budgets
97
- summary: Single budget
98
- description: >-
99
- Returns a single budget with all related entities. This resource is
100
- effectively a full budget export.
101
- operationId: getBudgetById
83
+ - Plans
84
+ summary: Get a plan
85
+ description: Returns a single plan with all related entities. This resource is
86
+ effectively a full plan export.
87
+ operationId: getPlanById
102
88
  parameters:
103
- - name: budget_id
89
+ - name: plan_id
104
90
  in: path
105
- description: >-
106
- The id of the budget. "last-used" can be used to specify the last
107
- used budget and "default" can be used if default budget selection is
108
- enabled (see: https://api.ynab.com/#oauth-default-budget).
91
+ description: 'The id of the plan. "last-used" can be used to specify the last
92
+ used plan and "default" can be used if default plan selection is
93
+ enabled (see: https://api.ynab.com/#oauth-default-plan).'
109
94
  required: true
110
95
  schema:
111
96
  type: string
112
97
  - name: last_knowledge_of_server
113
98
  in: query
114
- description: >-
115
- The starting server knowledge. If provided, only entities that have
116
- changed since `last_knowledge_of_server` will be included.
99
+ description: The starting server knowledge. If provided, only entities that
100
+ have changed since `last_knowledge_of_server` will be included.
117
101
  schema:
118
102
  type: integer
119
103
  format: int64
120
104
  responses:
121
105
  "200":
122
- description: The requested budget
106
+ description: The requested plan
123
107
  content:
124
108
  application/json:
125
109
  schema:
126
- $ref: "#/components/schemas/BudgetDetailResponse"
110
+ $ref: "#/components/schemas/PlanDetailResponse"
127
111
  "404":
128
- description: The specified budget was not found
129
- content:
130
- application/json:
131
- schema:
132
- $ref: "#/components/schemas/ErrorResponse"
133
- default:
134
- description: An error occurred
112
+ description: The specified plan was not found
135
113
  content:
136
114
  application/json:
137
115
  schema:
138
116
  $ref: "#/components/schemas/ErrorResponse"
139
- /budgets/{budget_id}/settings:
117
+ /budgets/{plan_id}/settings:
140
118
  get:
141
119
  tags:
142
- - Budgets
143
- summary: Budget Settings
144
- description: Returns settings for a budget
145
- operationId: getBudgetSettingsById
120
+ - Plans
121
+ summary: Get plan settings
122
+ description: Returns settings for a plan
123
+ operationId: getPlanSettingsById
146
124
  parameters:
147
- - name: budget_id
125
+ - name: plan_id
148
126
  in: path
149
- description: >-
150
- The id of the budget. "last-used" can be used to specify the last
151
- used budget and "default" can be used if default budget selection is
152
- enabled (see: https://api.ynab.com/#oauth-default-budget).
127
+ description: 'The id of the plan. "last-used" can be used to specify the last
128
+ used plan and "default" can be used if default plan selection is
129
+ enabled (see: https://api.ynab.com/#oauth-default-plan).'
153
130
  required: true
154
131
  schema:
155
132
  type: string
156
133
  responses:
157
134
  "200":
158
- description: The requested budget settings
135
+ description: The requested plan settings
159
136
  content:
160
137
  application/json:
161
138
  schema:
162
- $ref: "#/components/schemas/BudgetSettingsResponse"
139
+ $ref: "#/components/schemas/PlanSettingsResponse"
163
140
  "404":
164
- description: The specified Budget was not found
141
+ description: The specified plan was not found
165
142
  content:
166
143
  application/json:
167
144
  schema:
168
145
  $ref: "#/components/schemas/ErrorResponse"
169
- default:
170
- description: An error occurred
171
- content:
172
- application/json:
173
- schema:
174
- $ref: "#/components/schemas/ErrorResponse"
175
- /budgets/{budget_id}/accounts:
146
+ /budgets/{plan_id}/accounts:
176
147
  get:
177
148
  tags:
178
149
  - Accounts
179
- summary: Account list
150
+ summary: Get all accounts
180
151
  description: Returns all accounts
181
152
  operationId: getAccounts
182
153
  parameters:
183
- - name: budget_id
154
+ - name: plan_id
184
155
  in: path
185
- description: >-
186
- The id of the budget. "last-used" can be used to specify the last
187
- used budget and "default" can be used if default budget selection is
188
- enabled (see: https://api.ynab.com/#oauth-default-budget).
156
+ description: 'The id of the plan. "last-used" can be used to specify the last
157
+ used plan and "default" can be used if default plan selection is
158
+ enabled (see: https://api.ynab.com/#oauth-default-plan).'
189
159
  required: true
190
160
  schema:
191
161
  type: string
192
162
  - name: last_knowledge_of_server
193
163
  in: query
194
- description: >-
195
- The starting server knowledge. If provided, only entities that have
196
- changed since `last_knowledge_of_server` will be included.
164
+ description: The starting server knowledge. If provided, only entities that
165
+ have changed since `last_knowledge_of_server` will be included.
197
166
  schema:
198
167
  type: integer
199
168
  format: int64
@@ -210,32 +179,25 @@ paths:
210
179
  application/json:
211
180
  schema:
212
181
  $ref: "#/components/schemas/ErrorResponse"
213
- default:
214
- description: An error occurred
215
- content:
216
- application/json:
217
- schema:
218
- $ref: "#/components/schemas/ErrorResponse"
219
182
  post:
220
183
  tags:
221
184
  - Accounts
222
- summary: Create a new account
185
+ summary: Create an account
223
186
  description: Creates a new account
224
187
  operationId: createAccount
225
188
  parameters:
226
- - name: budget_id
189
+ - name: plan_id
227
190
  in: path
228
- description: >-
229
- The id of the budget ("last-used" can be used to specify the last
230
- used budget and "default" can be used if default budget selection is
231
- enabled (see: https://api.ynab.com/#oauth-default-budget)
191
+ description: 'The id of the plan ("last-used" can be used to specify the last
192
+ used plan and "default" can be used if default plan selection is
193
+ enabled (see: https://api.ynab.com/#oauth-default-plan)'
232
194
  required: true
233
195
  schema:
234
196
  type: string
235
197
  requestBody:
236
198
  description: The account to create.
237
199
  content:
238
- "application/json":
200
+ application/json:
239
201
  schema:
240
202
  $ref: "#/components/schemas/PostAccountWrapper"
241
203
  required: true
@@ -247,28 +209,26 @@ paths:
247
209
  schema:
248
210
  $ref: "#/components/schemas/AccountResponse"
249
211
  "400":
250
- description: >-
251
- The request could not be understood due to malformed syntax or
212
+ description: The request could not be understood due to malformed syntax or
252
213
  validation error(s).
253
214
  content:
254
215
  application/json:
255
216
  schema:
256
217
  $ref: "#/components/schemas/ErrorResponse"
257
218
  x-codegen-request-body-name: data
258
- /budgets/{budget_id}/accounts/{account_id}:
219
+ /budgets/{plan_id}/accounts/{account_id}:
259
220
  get:
260
221
  tags:
261
222
  - Accounts
262
- summary: Single account
223
+ summary: Get an account
263
224
  description: Returns a single account
264
225
  operationId: getAccountById
265
226
  parameters:
266
- - name: budget_id
227
+ - name: plan_id
267
228
  in: path
268
- description: >-
269
- The id of the budget. "last-used" can be used to specify the last
270
- used budget and "default" can be used if default budget selection is
271
- enabled (see: https://api.ynab.com/#oauth-default-budget).
229
+ description: 'The id of the plan. "last-used" can be used to specify the last
230
+ used plan and "default" can be used if default plan selection is
231
+ enabled (see: https://api.ynab.com/#oauth-default-plan).'
272
232
  required: true
273
233
  schema:
274
234
  type: string
@@ -292,36 +252,28 @@ paths:
292
252
  application/json:
293
253
  schema:
294
254
  $ref: "#/components/schemas/ErrorResponse"
295
- default:
296
- description: An error occurred
297
- content:
298
- application/json:
299
- schema:
300
- $ref: "#/components/schemas/ErrorResponse"
301
- /budgets/{budget_id}/categories:
255
+ /budgets/{plan_id}/categories:
302
256
  get:
303
257
  tags:
304
258
  - Categories
305
- summary: List categories
306
- description: >-
307
- Returns all categories grouped by category group. Amounts (budgeted,
308
- activity, balance, etc.) are specific to the current budget month (UTC).
259
+ summary: Get all categories
260
+ description: Returns all categories grouped by category group. Amounts
261
+ (assigned, activity, available, etc.) are specific to the current plan
262
+ month (UTC).
309
263
  operationId: getCategories
310
264
  parameters:
311
- - name: budget_id
265
+ - name: plan_id
312
266
  in: path
313
- description: >-
314
- The id of the budget. "last-used" can be used to specify the last
315
- used budget and "default" can be used if default budget selection is
316
- enabled (see: https://api.ynab.com/#oauth-default-budget).
267
+ description: 'The id of the plan. "last-used" can be used to specify the last
268
+ used plan and "default" can be used if default plan selection is
269
+ enabled (see: https://api.ynab.com/#oauth-default-plan).'
317
270
  required: true
318
271
  schema:
319
272
  type: string
320
273
  - name: last_knowledge_of_server
321
274
  in: query
322
- description: >-
323
- The starting server knowledge. If provided, only entities that have
324
- changed since `last_knowledge_of_server` will be included.
275
+ description: The starting server knowledge. If provided, only entities that
276
+ have changed since `last_knowledge_of_server` will be included.
325
277
  schema:
326
278
  type: integer
327
279
  format: int64
@@ -338,28 +290,57 @@ paths:
338
290
  application/json:
339
291
  schema:
340
292
  $ref: "#/components/schemas/ErrorResponse"
341
- default:
342
- description: An error occurred
293
+ post:
294
+ tags:
295
+ - Categories
296
+ summary: Create a category
297
+ description: Creates a new category
298
+ operationId: createCategory
299
+ parameters:
300
+ - name: plan_id
301
+ in: path
302
+ description: 'The id of the plan ("last-used" can be used to specify the last
303
+ used plan and "default" can be used if default plan selection is
304
+ enabled (see: https://api.ynab.com/#oauth-default-plan)'
305
+ required: true
306
+ schema:
307
+ type: string
308
+ requestBody:
309
+ description: The category to create.
310
+ content:
311
+ application/json:
312
+ schema:
313
+ $ref: "#/components/schemas/PostCategoryWrapper"
314
+ required: true
315
+ responses:
316
+ "201":
317
+ description: The category was successfully created
318
+ content:
319
+ application/json:
320
+ schema:
321
+ $ref: "#/components/schemas/SaveCategoryResponse"
322
+ "400":
323
+ description: The request could not be understood due to malformed syntax or
324
+ validation error(s).
343
325
  content:
344
326
  application/json:
345
327
  schema:
346
328
  $ref: "#/components/schemas/ErrorResponse"
347
- /budgets/{budget_id}/categories/{category_id}:
329
+ x-codegen-request-body-name: data
330
+ /budgets/{plan_id}/categories/{category_id}:
348
331
  get:
349
332
  tags:
350
333
  - Categories
351
- summary: Single category
352
- description: >-
353
- Returns a single category. Amounts (budgeted, activity, balance, etc.)
354
- are specific to the current budget month (UTC).
334
+ summary: Get a category
335
+ description: Returns a single category. Amounts (assigned, activity, available,
336
+ etc.) are specific to the current plan month (UTC).
355
337
  operationId: getCategoryById
356
338
  parameters:
357
- - name: budget_id
339
+ - name: plan_id
358
340
  in: path
359
- description: >-
360
- The id of the budget. "last-used" can be used to specify the last
361
- used budget and "default" can be used if default budget selection is
362
- enabled (see: https://api.ynab.com/#oauth-default-budget).
341
+ description: 'The id of the plan. "last-used" can be used to specify the last
342
+ used plan and "default" can be used if default plan selection is
343
+ enabled (see: https://api.ynab.com/#oauth-default-plan).'
363
344
  required: true
364
345
  schema:
365
346
  type: string
@@ -377,13 +358,7 @@ paths:
377
358
  schema:
378
359
  $ref: "#/components/schemas/CategoryResponse"
379
360
  "404":
380
- description: The category not was found
381
- content:
382
- application/json:
383
- schema:
384
- $ref: "#/components/schemas/ErrorResponse"
385
- default:
386
- description: An error occurred
361
+ description: The category was not found
387
362
  content:
388
363
  application/json:
389
364
  schema:
@@ -392,16 +367,14 @@ paths:
392
367
  tags:
393
368
  - Categories
394
369
  summary: Update a category
395
- description: >-
396
- Update a category
370
+ description: Update a category
397
371
  operationId: updateCategory
398
372
  parameters:
399
- - name: budget_id
373
+ - name: plan_id
400
374
  in: path
401
- description: >-
402
- The id of the budget. "last-used" can be used to specify the last
403
- used budget and "default" can be used if default budget selection is
404
- enabled (see: https://api.ynab.com/#oauth-default-budget).
375
+ description: 'The id of the plan. "last-used" can be used to specify the last
376
+ used plan and "default" can be used if default plan selection is
377
+ enabled (see: https://api.ynab.com/#oauth-default-plan).'
405
378
  required: true
406
379
  schema:
407
380
  type: string
@@ -412,10 +385,9 @@ paths:
412
385
  schema:
413
386
  type: string
414
387
  requestBody:
415
- description: >-
416
- The category to update
388
+ description: The category to update
417
389
  content:
418
- "application/json":
390
+ application/json:
419
391
  schema:
420
392
  $ref: "#/components/schemas/PatchCategoryWrapper"
421
393
  required: true
@@ -427,38 +399,34 @@ paths:
427
399
  schema:
428
400
  $ref: "#/components/schemas/SaveCategoryResponse"
429
401
  "400":
430
- description: >-
431
- The request could not be understood due to malformed syntax or
402
+ description: The request could not be understood due to malformed syntax or
432
403
  validation error(s)
433
404
  content:
434
405
  application/json:
435
406
  schema:
436
407
  $ref: "#/components/schemas/ErrorResponse"
437
408
  x-codegen-request-body-name: data
438
- /budgets/{budget_id}/months/{month}/categories/{category_id}:
409
+ /budgets/{plan_id}/months/{month}/categories/{category_id}:
439
410
  get:
440
411
  tags:
441
412
  - Categories
442
- summary: Single category for a specific budget month
443
- description: >-
444
- Returns a single category for a specific budget month. Amounts
445
- (budgeted, activity, balance, etc.) are specific to the current budget
413
+ summary: Get a category for a specific plan month
414
+ description: Returns a single category for a specific plan month. Amounts
415
+ (assigned, activity, available, etc.) are specific to the current plan
446
416
  month (UTC).
447
417
  operationId: getMonthCategoryById
448
418
  parameters:
449
- - name: budget_id
419
+ - name: plan_id
450
420
  in: path
451
- description: >-
452
- The id of the budget. "last-used" can be used to specify the last
453
- used budget and "default" can be used if default budget selection is
454
- enabled (see: https://api.ynab.com/#oauth-default-budget).
421
+ description: 'The id of the plan. "last-used" can be used to specify the last
422
+ used plan and "default" can be used if default plan selection is
423
+ enabled (see: https://api.ynab.com/#oauth-default-plan).'
455
424
  required: true
456
425
  schema:
457
426
  type: string
458
427
  - name: month
459
428
  in: path
460
- description: >-
461
- The budget month in ISO format (e.g. 2016-12-01) ("current" can also
429
+ description: The plan month in ISO format (e.g. 2016-12-01) ("current" can also
462
430
  be used to specify the current calendar month (UTC))
463
431
  required: true
464
432
  schema:
@@ -483,34 +451,25 @@ paths:
483
451
  application/json:
484
452
  schema:
485
453
  $ref: "#/components/schemas/ErrorResponse"
486
- default:
487
- description: An error occurred
488
- content:
489
- application/json:
490
- schema:
491
- $ref: "#/components/schemas/ErrorResponse"
492
454
  patch:
493
455
  tags:
494
456
  - Categories
495
457
  summary: Update a category for a specific month
496
- description: >-
497
- Update a category for a specific month. Only `budgeted` amount can be
498
- updated.
458
+ description: Update a category for a specific month. Only `budgeted` (assigned)
459
+ amount can be updated.
499
460
  operationId: updateMonthCategory
500
461
  parameters:
501
- - name: budget_id
462
+ - name: plan_id
502
463
  in: path
503
- description: >-
504
- The id of the budget. "last-used" can be used to specify the last
505
- used budget and "default" can be used if default budget selection is
506
- enabled (see: https://api.ynab.com/#oauth-default-budget).
464
+ description: 'The id of the plan. "last-used" can be used to specify the last
465
+ used plan and "default" can be used if default plan selection is
466
+ enabled (see: https://api.ynab.com/#oauth-default-plan).'
507
467
  required: true
508
468
  schema:
509
469
  type: string
510
470
  - name: month
511
471
  in: path
512
- description: >-
513
- The budget month in ISO format (e.g. 2016-12-01) ("current" can also
472
+ description: The plan month in ISO format (e.g. 2016-12-01) ("current" can also
514
473
  be used to specify the current calendar month (UTC))
515
474
  required: true
516
475
  schema:
@@ -523,11 +482,10 @@ paths:
523
482
  schema:
524
483
  type: string
525
484
  requestBody:
526
- description: >-
527
- The category to update. Only `budgeted` amount can be updated and any
528
- other fields specified will be ignored.
485
+ description: The category to update. Only `budgeted` (assigned) amount can be
486
+ updated and any other fields specified will be ignored.
529
487
  content:
530
- "application/json":
488
+ application/json:
531
489
  schema:
532
490
  $ref: "#/components/schemas/PatchMonthCategoryWrapper"
533
491
  required: true
@@ -539,36 +497,115 @@ paths:
539
497
  schema:
540
498
  $ref: "#/components/schemas/SaveCategoryResponse"
541
499
  "400":
542
- description: >-
543
- The request could not be understood due to malformed syntax or
500
+ description: The request could not be understood due to malformed syntax or
544
501
  validation error(s)
545
502
  content:
546
503
  application/json:
547
504
  schema:
548
505
  $ref: "#/components/schemas/ErrorResponse"
549
506
  x-codegen-request-body-name: data
550
- /budgets/{budget_id}/payees:
507
+ /budgets/{plan_id}/category_groups:
508
+ post:
509
+ tags:
510
+ - Categories
511
+ summary: Create a category group
512
+ description: Creates a new category group
513
+ operationId: createCategoryGroup
514
+ parameters:
515
+ - name: plan_id
516
+ in: path
517
+ description: 'The id of the plan ("last-used" can be used to specify the last
518
+ used plan and "default" can be used if default plan selection is
519
+ enabled (see: https://api.ynab.com/#oauth-default-plan)'
520
+ required: true
521
+ schema:
522
+ type: string
523
+ requestBody:
524
+ description: The category group to create.
525
+ content:
526
+ application/json:
527
+ schema:
528
+ $ref: "#/components/schemas/PostCategoryGroupWrapper"
529
+ required: true
530
+ responses:
531
+ "201":
532
+ description: The category group was successfully created
533
+ content:
534
+ application/json:
535
+ schema:
536
+ $ref: "#/components/schemas/SaveCategoryGroupResponse"
537
+ "400":
538
+ description: The request could not be understood due to malformed syntax or
539
+ validation error(s).
540
+ content:
541
+ application/json:
542
+ schema:
543
+ $ref: "#/components/schemas/ErrorResponse"
544
+ x-codegen-request-body-name: data
545
+ /budgets/{plan_id}/category_groups/{category_group_id}:
546
+ patch:
547
+ tags:
548
+ - Categories
549
+ summary: Update a category group
550
+ description: Update a category group
551
+ operationId: updateCategoryGroup
552
+ parameters:
553
+ - name: plan_id
554
+ in: path
555
+ description: 'The id of the plan. "last-used" can be used to specify the last
556
+ used plan and "default" can be used if default plan selection is
557
+ enabled (see: https://api.ynab.com/#oauth-default-plan).'
558
+ required: true
559
+ schema:
560
+ type: string
561
+ - name: category_group_id
562
+ in: path
563
+ description: The id of the category group
564
+ required: true
565
+ schema:
566
+ type: string
567
+ requestBody:
568
+ description: The category group to update
569
+ content:
570
+ application/json:
571
+ schema:
572
+ $ref: "#/components/schemas/PatchCategoryGroupWrapper"
573
+ required: true
574
+ responses:
575
+ "200":
576
+ description: The category group was successfully updated
577
+ content:
578
+ application/json:
579
+ schema:
580
+ $ref: "#/components/schemas/SaveCategoryGroupResponse"
581
+ "400":
582
+ description: The request could not be understood due to malformed syntax or
583
+ validation error(s)
584
+ content:
585
+ application/json:
586
+ schema:
587
+ $ref: "#/components/schemas/ErrorResponse"
588
+ x-codegen-request-body-name: data
589
+ /budgets/{plan_id}/payees:
551
590
  get:
552
591
  tags:
553
592
  - Payees
554
- summary: List payees
593
+ summary: Get all payees
555
594
  description: Returns all payees
556
595
  operationId: getPayees
557
596
  parameters:
558
- - name: budget_id
597
+ - name: plan_id
559
598
  in: path
560
- description: >-
561
- The id of the budget. "last-used" can be used to specify the last
562
- used budget and "default" can be used if default budget selection is
563
- enabled (see: https://api.ynab.com/#oauth-default-budget).
599
+ description: 'The id of the plan. "last-used" can be used to specify the last
600
+ used plan and "default" can be used if default plan selection is
601
+ enabled (see: https://api.ynab.com/#oauth-default-plan).'
564
602
  required: true
565
603
  schema:
566
604
  type: string
567
605
  - name: last_knowledge_of_server
568
606
  in: query
569
- description: >-
570
- The starting server knowledge. If provided, only entities that have
571
- changed since `last_knowledge_of_server` will be included.
607
+ description: The starting server knowledge. If provided, only entities that
608
+ have changed since `last_knowledge_of_server` will be included.
572
609
  schema:
573
610
  type: integer
574
611
  format: int64
@@ -585,26 +622,19 @@ paths:
585
622
  application/json:
586
623
  schema:
587
624
  $ref: "#/components/schemas/ErrorResponse"
588
- default:
589
- description: An error occurred
590
- content:
591
- application/json:
592
- schema:
593
- $ref: "#/components/schemas/ErrorResponse"
594
- /budgets/{budget_id}/payees/{payee_id}:
625
+ /budgets/{plan_id}/payees/{payee_id}:
595
626
  get:
596
627
  tags:
597
628
  - Payees
598
- summary: Single payee
629
+ summary: Get a payee
599
630
  description: Returns a single payee
600
631
  operationId: getPayeeById
601
632
  parameters:
602
- - name: budget_id
633
+ - name: plan_id
603
634
  in: path
604
- description: >-
605
- The id of the budget. "last-used" can be used to specify the last
606
- used budget and "default" can be used if default budget selection is
607
- enabled (see: https://api.ynab.com/#oauth-default-budget).
635
+ description: 'The id of the plan. "last-used" can be used to specify the last
636
+ used plan and "default" can be used if default plan selection is
637
+ enabled (see: https://api.ynab.com/#oauth-default-plan).'
608
638
  required: true
609
639
  schema:
610
640
  type: string
@@ -627,26 +657,18 @@ paths:
627
657
  application/json:
628
658
  schema:
629
659
  $ref: "#/components/schemas/ErrorResponse"
630
- default:
631
- description: An error occurred
632
- content:
633
- application/json:
634
- schema:
635
- $ref: "#/components/schemas/ErrorResponse"
636
660
  patch:
637
661
  tags:
638
662
  - Payees
639
663
  summary: Update a payee
640
- description: >-
641
- Update a payee
664
+ description: Update a payee
642
665
  operationId: updatePayee
643
666
  parameters:
644
- - name: budget_id
667
+ - name: plan_id
645
668
  in: path
646
- description: >-
647
- The id of the budget. "last-used" can be used to specify the last
648
- used budget and "default" can be used if default budget selection is
649
- enabled (see: https://api.ynab.com/#oauth-default-budget).
669
+ description: 'The id of the plan. "last-used" can be used to specify the last
670
+ used plan and "default" can be used if default plan selection is
671
+ enabled (see: https://api.ynab.com/#oauth-default-plan).'
650
672
  required: true
651
673
  schema:
652
674
  type: string
@@ -657,10 +679,9 @@ paths:
657
679
  schema:
658
680
  type: string
659
681
  requestBody:
660
- description: >-
661
- The payee to update
682
+ description: The payee to update
662
683
  content:
663
- "application/json":
684
+ application/json:
664
685
  schema:
665
686
  $ref: "#/components/schemas/PatchPayeeWrapper"
666
687
  required: true
@@ -672,28 +693,26 @@ paths:
672
693
  schema:
673
694
  $ref: "#/components/schemas/SavePayeeResponse"
674
695
  "400":
675
- description: >-
676
- The request could not be understood due to malformed syntax or
696
+ description: The request could not be understood due to malformed syntax or
677
697
  validation error(s)
678
698
  content:
679
699
  application/json:
680
700
  schema:
681
701
  $ref: "#/components/schemas/ErrorResponse"
682
702
  x-codegen-request-body-name: data
683
- /budgets/{budget_id}/payee_locations:
703
+ /budgets/{plan_id}/payee_locations:
684
704
  get:
685
705
  tags:
686
706
  - Payee Locations
687
- summary: List payee locations
707
+ summary: Get all payee locations
688
708
  description: Returns all payee locations
689
709
  operationId: getPayeeLocations
690
710
  parameters:
691
- - name: budget_id
711
+ - name: plan_id
692
712
  in: path
693
- description: >-
694
- The id of the budget. "last-used" can be used to specify the last
695
- used budget and "default" can be used if default budget selection is
696
- enabled (see: https://api.ynab.com/#oauth-default-budget).
713
+ description: 'The id of the plan. "last-used" can be used to specify the last
714
+ used plan and "default" can be used if default plan selection is
715
+ enabled (see: https://api.ynab.com/#oauth-default-plan).'
697
716
  required: true
698
717
  schema:
699
718
  type: string
@@ -710,26 +729,19 @@ paths:
710
729
  application/json:
711
730
  schema:
712
731
  $ref: "#/components/schemas/ErrorResponse"
713
- default:
714
- description: An error occurred
715
- content:
716
- application/json:
717
- schema:
718
- $ref: "#/components/schemas/ErrorResponse"
719
- /budgets/{budget_id}/payee_locations/{payee_location_id}:
732
+ /budgets/{plan_id}/payee_locations/{payee_location_id}:
720
733
  get:
721
734
  tags:
722
735
  - Payee Locations
723
- summary: Single payee location
736
+ summary: Get a payee location
724
737
  description: Returns a single payee location
725
738
  operationId: getPayeeLocationById
726
739
  parameters:
727
- - name: budget_id
740
+ - name: plan_id
728
741
  in: path
729
- description: >-
730
- The id of the budget. "last-used" can be used to specify the last
731
- used budget and "default" can be used if default budget selection is
732
- enabled (see: https://api.ynab.com/#oauth-default-budget).
742
+ description: 'The id of the plan. "last-used" can be used to specify the last
743
+ used plan and "default" can be used if default plan selection is
744
+ enabled (see: https://api.ynab.com/#oauth-default-plan).'
733
745
  required: true
734
746
  schema:
735
747
  type: string
@@ -752,26 +764,19 @@ paths:
752
764
  application/json:
753
765
  schema:
754
766
  $ref: "#/components/schemas/ErrorResponse"
755
- default:
756
- description: An error occurred
757
- content:
758
- application/json:
759
- schema:
760
- $ref: "#/components/schemas/ErrorResponse"
761
- /budgets/{budget_id}/payees/{payee_id}/payee_locations:
767
+ /budgets/{plan_id}/payees/{payee_id}/payee_locations:
762
768
  get:
763
769
  tags:
764
770
  - Payee Locations
765
- summary: List locations for a payee
771
+ summary: Get all locations for a payee
766
772
  description: Returns all payee locations for a specified payee
767
773
  operationId: getPayeeLocationsByPayee
768
774
  parameters:
769
- - name: budget_id
775
+ - name: plan_id
770
776
  in: path
771
- description: >-
772
- The id of the budget. "last-used" can be used to specify the last
773
- used budget and "default" can be used if default budget selection is
774
- enabled (see: https://api.ynab.com/#oauth-default-budget).
777
+ description: 'The id of the plan. "last-used" can be used to specify the last
778
+ used plan and "default" can be used if default plan selection is
779
+ enabled (see: https://api.ynab.com/#oauth-default-plan).'
775
780
  required: true
776
781
  schema:
777
782
  type: string
@@ -794,77 +799,127 @@ paths:
794
799
  application/json:
795
800
  schema:
796
801
  $ref: "#/components/schemas/ErrorResponse"
797
- default:
798
- description: An error occurred
799
- content:
800
- application/json:
801
- schema:
802
- $ref: "#/components/schemas/ErrorResponse"
803
- /budgets/{budget_id}/months:
802
+ /budgets/{plan_id}/months:
804
803
  get:
805
804
  tags:
806
805
  - Months
807
- summary: List budget months
808
- description: Returns all budget months
809
- operationId: getBudgetMonths
806
+ summary: Get all plan months
807
+ description: Returns all plan months
808
+ operationId: getPlanMonths
810
809
  parameters:
811
- - name: budget_id
810
+ - name: plan_id
812
811
  in: path
813
- description: >-
814
- The id of the budget. "last-used" can be used to specify the last
815
- used budget and "default" can be used if default budget selection is
816
- enabled (see: https://api.ynab.com/#oauth-default-budget).
812
+ description: 'The id of the plan. "last-used" can be used to specify the last
813
+ used plan and "default" can be used if default plan selection is
814
+ enabled (see: https://api.ynab.com/#oauth-default-plan).'
817
815
  required: true
818
816
  schema:
819
817
  type: string
820
818
  - name: last_knowledge_of_server
821
819
  in: query
822
- description: >-
823
- The starting server knowledge. If provided, only entities that have
824
- changed since `last_knowledge_of_server` will be included.
820
+ description: The starting server knowledge. If provided, only entities that
821
+ have changed since `last_knowledge_of_server` will be included.
825
822
  schema:
826
823
  type: integer
827
824
  format: int64
828
825
  responses:
829
826
  "200":
830
- description: The list of budget months
827
+ description: The list of plan months
831
828
  content:
832
829
  application/json:
833
830
  schema:
834
831
  $ref: "#/components/schemas/MonthSummariesResponse"
835
832
  "404":
836
- description: No budget months were found
833
+ description: No plan months were found
837
834
  content:
838
835
  application/json:
839
836
  schema:
840
837
  $ref: "#/components/schemas/ErrorResponse"
841
- default:
842
- description: An error occurred
838
+ /budgets/{plan_id}/months/{month}:
839
+ get:
840
+ tags:
841
+ - Months
842
+ summary: Get a plan month
843
+ description: Returns a single plan month
844
+ operationId: getPlanMonth
845
+ parameters:
846
+ - name: plan_id
847
+ in: path
848
+ description: 'The id of the plan. "last-used" can be used to specify the last
849
+ used plan and "default" can be used if default plan selection is
850
+ enabled (see: https://api.ynab.com/#oauth-default-plan).'
851
+ required: true
852
+ schema:
853
+ type: string
854
+ - name: month
855
+ in: path
856
+ description: The plan month in ISO format (e.g. 2016-12-01) ("current" can also
857
+ be used to specify the current calendar month (UTC))
858
+ required: true
859
+ schema:
860
+ type: string
861
+ format: date
862
+ responses:
863
+ "200":
864
+ description: The plan month detail
865
+ content:
866
+ application/json:
867
+ schema:
868
+ $ref: "#/components/schemas/MonthDetailResponse"
869
+ "404":
870
+ description: The plan month was not found
843
871
  content:
844
872
  application/json:
845
873
  schema:
846
874
  $ref: "#/components/schemas/ErrorResponse"
847
- /budgets/{budget_id}/months/{month}:
875
+ /budgets/{plan_id}/money_movements:
848
876
  get:
849
877
  tags:
850
- - Months
851
- summary: Single budget month
852
- description: Returns a single budget month
853
- operationId: getBudgetMonth
878
+ - Money Movements
879
+ summary: Get all money movements
880
+ description: Returns all money movements
881
+ operationId: getMoneyMovements
854
882
  parameters:
855
- - name: budget_id
883
+ - name: plan_id
856
884
  in: path
857
- description: >-
858
- The id of the budget. "last-used" can be used to specify the last
859
- used budget and "default" can be used if default budget selection is
860
- enabled (see: https://api.ynab.com/#oauth-default-budget).
885
+ description: 'The id of the plan. "last-used" can be used to specify the last
886
+ used plan and "default" can be used if default plan selection is
887
+ enabled (see: https://api.ynab.com/#oauth-default-plan).'
888
+ required: true
889
+ schema:
890
+ type: string
891
+ responses:
892
+ "200":
893
+ description: The list of requested money movements
894
+ content:
895
+ application/json:
896
+ schema:
897
+ $ref: "#/components/schemas/MoneyMovementsResponse"
898
+ "404":
899
+ description: No money movements were found
900
+ content:
901
+ application/json:
902
+ schema:
903
+ $ref: "#/components/schemas/ErrorResponse"
904
+ /budgets/{plan_id}/months/{month}/money_movements:
905
+ get:
906
+ tags:
907
+ - Money Movements
908
+ summary: Get money movements for a plan month
909
+ description: Returns all money movements for a specific month
910
+ operationId: getMoneyMovementsByMonth
911
+ parameters:
912
+ - name: plan_id
913
+ in: path
914
+ description: 'The id of the plan. "last-used" can be used to specify the last
915
+ used plan and "default" can be used if default plan selection is
916
+ enabled (see: https://api.ynab.com/#oauth-default-plan).'
861
917
  required: true
862
918
  schema:
863
919
  type: string
864
920
  - name: month
865
921
  in: path
866
- description: >-
867
- The budget month in ISO format (e.g. 2016-12-01) ("current" can also
922
+ description: The plan month in ISO format (e.g. 2016-12-01) ("current" can also
868
923
  be used to specify the current calendar month (UTC))
869
924
  required: true
870
925
  schema:
@@ -872,52 +927,109 @@ paths:
872
927
  format: date
873
928
  responses:
874
929
  "200":
875
- description: The budget month detail
930
+ description: The list of requested money movements
876
931
  content:
877
932
  application/json:
878
933
  schema:
879
- $ref: "#/components/schemas/MonthDetailResponse"
934
+ $ref: "#/components/schemas/MoneyMovementsResponse"
880
935
  "404":
881
- description: The budget month was not found
936
+ description: No money movements were found
882
937
  content:
883
938
  application/json:
884
939
  schema:
885
940
  $ref: "#/components/schemas/ErrorResponse"
886
- default:
887
- description: An error occurred
941
+ /budgets/{plan_id}/money_movement_groups:
942
+ get:
943
+ tags:
944
+ - Money Movements
945
+ summary: Get all money movement groups
946
+ description: Returns all money movement groups
947
+ operationId: getMoneyMovementGroups
948
+ parameters:
949
+ - name: plan_id
950
+ in: path
951
+ description: 'The id of the plan. "last-used" can be used to specify the last
952
+ used plan and "default" can be used if default plan selection is
953
+ enabled (see: https://api.ynab.com/#oauth-default-plan).'
954
+ required: true
955
+ schema:
956
+ type: string
957
+ responses:
958
+ "200":
959
+ description: The list of requested money movement groups
960
+ content:
961
+ application/json:
962
+ schema:
963
+ $ref: "#/components/schemas/MoneyMovementGroupsResponse"
964
+ "404":
965
+ description: No money movement groups were found
966
+ content:
967
+ application/json:
968
+ schema:
969
+ $ref: "#/components/schemas/ErrorResponse"
970
+ /budgets/{plan_id}/months/{month}/money_movement_groups:
971
+ get:
972
+ tags:
973
+ - Money Movements
974
+ summary: Get money movement groups for a plan month
975
+ description: Returns all money movement groups for a specific month
976
+ operationId: getMoneyMovementGroupsByMonth
977
+ parameters:
978
+ - name: plan_id
979
+ in: path
980
+ description: 'The id of the plan. "last-used" can be used to specify the last
981
+ used plan and "default" can be used if default plan selection is
982
+ enabled (see: https://api.ynab.com/#oauth-default-plan).'
983
+ required: true
984
+ schema:
985
+ type: string
986
+ - name: month
987
+ in: path
988
+ description: The plan month in ISO format (e.g. 2016-12-01) ("current" can also
989
+ be used to specify the current calendar month (UTC))
990
+ required: true
991
+ schema:
992
+ type: string
993
+ format: date
994
+ responses:
995
+ "200":
996
+ description: The list of requested money movement groups
997
+ content:
998
+ application/json:
999
+ schema:
1000
+ $ref: "#/components/schemas/MoneyMovementGroupsResponse"
1001
+ "404":
1002
+ description: No money movement groups were found
888
1003
  content:
889
1004
  application/json:
890
1005
  schema:
891
1006
  $ref: "#/components/schemas/ErrorResponse"
892
- /budgets/{budget_id}/transactions:
1007
+ /budgets/{plan_id}/transactions:
893
1008
  get:
894
1009
  tags:
895
1010
  - Transactions
896
- summary: List transactions
897
- description: Returns budget transactions, excluding any pending transactions
1011
+ summary: Get all transactions
1012
+ description: Returns plan transactions, excluding any pending transactions
898
1013
  operationId: getTransactions
899
1014
  parameters:
900
- - name: budget_id
1015
+ - name: plan_id
901
1016
  in: path
902
- description: >-
903
- The id of the budget. "last-used" can be used to specify the last
904
- used budget and "default" can be used if default budget selection is
905
- enabled (see: https://api.ynab.com/#oauth-default-budget).
1017
+ description: 'The id of the plan. "last-used" can be used to specify the last
1018
+ used plan and "default" can be used if default plan selection is
1019
+ enabled (see: https://api.ynab.com/#oauth-default-plan).'
906
1020
  required: true
907
1021
  schema:
908
1022
  type: string
909
1023
  - name: since_date
910
1024
  in: query
911
- description: >-
912
- If specified, only transactions on or after this date will be
1025
+ description: If specified, only transactions on or after this date will be
913
1026
  included. The date should be ISO formatted (e.g. 2016-12-30).
914
1027
  schema:
915
1028
  type: string
916
1029
  format: date
917
1030
  - name: type
918
1031
  in: query
919
- description: >-
920
- If specified, only transactions of the specified type will be
1032
+ description: If specified, only transactions of the specified type will be
921
1033
  included. "uncategorized" and "unapproved" are currently supported.
922
1034
  schema:
923
1035
  type: string
@@ -926,9 +1038,8 @@ paths:
926
1038
  - unapproved
927
1039
  - name: last_knowledge_of_server
928
1040
  in: query
929
- description: >-
930
- The starting server knowledge. If provided, only entities that have
931
- changed since `last_knowledge_of_server` will be included.
1041
+ description: The starting server knowledge. If provided, only entities that
1042
+ have changed since `last_knowledge_of_server` will be included.
932
1043
  schema:
933
1044
  type: integer
934
1045
  format: int64
@@ -955,32 +1066,29 @@ paths:
955
1066
  tags:
956
1067
  - Transactions
957
1068
  summary: Create a single transaction or multiple transactions
958
- description: >-
959
- Creates a single transaction or multiple transactions. If you provide a
960
- body containing a `transaction` object, a single transaction will be
961
- created and if you provide a body containing a `transactions` array,
962
- multiple transactions will be created. Scheduled transactions (transactions with a future date)
963
- cannot be created on this endpoint.
1069
+ description: Creates a single transaction or multiple transactions. If you
1070
+ provide a body containing a `transaction` object, a single transaction
1071
+ will be created and if you provide a body containing a `transactions`
1072
+ array, multiple transactions will be created. Scheduled transactions
1073
+ (transactions with a future date) cannot be created on this endpoint.
964
1074
  operationId: createTransaction
965
1075
  parameters:
966
- - name: budget_id
1076
+ - name: plan_id
967
1077
  in: path
968
- description: >-
969
- The id of the budget. "last-used" can be used to specify the last
970
- used budget and "default" can be used if default budget selection is
971
- enabled (see: https://api.ynab.com/#oauth-default-budget).
1078
+ description: 'The id of the plan. "last-used" can be used to specify the last
1079
+ used plan and "default" can be used if default plan selection is
1080
+ enabled (see: https://api.ynab.com/#oauth-default-plan).'
972
1081
  required: true
973
1082
  schema:
974
1083
  type: string
975
1084
  requestBody:
976
- description: >-
977
- The transaction or transactions to create. To create a single
1085
+ description: The transaction or transactions to create. To create a single
978
1086
  transaction you can specify a value for the `transaction` object and
979
1087
  to create multiple transactions you can specify an array of
980
1088
  `transactions`. It is expected that you will only provide a value for
981
1089
  one of these objects.
982
1090
  content:
983
- "application/json":
1091
+ application/json:
984
1092
  schema:
985
1093
  $ref: "#/components/schemas/PostTransactionsWrapper"
986
1094
  required: true
@@ -992,16 +1100,14 @@ paths:
992
1100
  schema:
993
1101
  $ref: "#/components/schemas/SaveTransactionsResponse"
994
1102
  "400":
995
- description: >-
996
- The request could not be understood due to malformed syntax or
1103
+ description: The request could not be understood due to malformed syntax or
997
1104
  validation error(s).
998
1105
  content:
999
1106
  application/json:
1000
1107
  schema:
1001
1108
  $ref: "#/components/schemas/ErrorResponse"
1002
1109
  "409":
1003
- description: >-
1004
- A transaction on the same account with the same `import_id` already
1110
+ description: A transaction on the same account with the same `import_id` already
1005
1111
  exists.
1006
1112
  content:
1007
1113
  application/json:
@@ -1015,26 +1121,25 @@ paths:
1015
1121
  description: Updates multiple transactions, by `id` or `import_id`.
1016
1122
  operationId: updateTransactions
1017
1123
  parameters:
1018
- - name: budget_id
1124
+ - name: plan_id
1019
1125
  in: path
1020
- description: >-
1021
- The id of the budget. "last-used" can be used to specify the last
1022
- used budget and "default" can be used if default budget selection is
1023
- enabled (see: https://api.ynab.com/#oauth-default-budget).
1126
+ description: 'The id of the plan. "last-used" can be used to specify the last
1127
+ used plan and "default" can be used if default plan selection is
1128
+ enabled (see: https://api.ynab.com/#oauth-default-plan).'
1024
1129
  required: true
1025
1130
  schema:
1026
1131
  type: string
1027
1132
  requestBody:
1028
- description: >-
1029
- The transactions to update. Each transaction must have either an `id`
1030
- or `import_id` specified. If `id` is specified as null an `import_id`
1031
- value can be provided which will allow transaction(s) to be updated by
1032
- its `import_id`. If an `id` is specified, it will always be used for
1033
- lookup. You should not specify both `id` and `import_id`. Updating
1034
- an `import_id` on an existing transaction is not allowed; if an `import_id`
1035
- is specified, it will only be used to lookup the transaction.
1133
+ description: The transactions to update. Each transaction must have either an
1134
+ `id` or `import_id` specified. If `id` is specified as null an
1135
+ `import_id` value can be provided which will allow transaction(s) to
1136
+ be updated by its `import_id`. If an `id` is specified, it will always
1137
+ be used for lookup. You should not specify both `id` and
1138
+ `import_id`. Updating an `import_id` on an existing transaction is
1139
+ not allowed; if an `import_id` is specified, it will only be used to
1140
+ lookup the transaction.
1036
1141
  content:
1037
- "application/json":
1142
+ application/json:
1038
1143
  schema:
1039
1144
  $ref: "#/components/schemas/PatchTransactionsWrapper"
1040
1145
  required: true
@@ -1046,35 +1151,32 @@ paths:
1046
1151
  schema:
1047
1152
  $ref: "#/components/schemas/SaveTransactionsResponse"
1048
1153
  "400":
1049
- description: >-
1050
- The request could not be understood due to malformed syntax or
1154
+ description: The request could not be understood due to malformed syntax or
1051
1155
  validation error(s).
1052
1156
  content:
1053
1157
  application/json:
1054
1158
  schema:
1055
1159
  $ref: "#/components/schemas/ErrorResponse"
1056
1160
  x-codegen-request-body-name: data
1057
- /budgets/{budget_id}/transactions/import:
1161
+ /budgets/{plan_id}/transactions/import:
1058
1162
  post:
1059
1163
  tags:
1060
1164
  - Transactions
1061
1165
  summary: Import transactions
1062
- description: >-
1063
- Imports available transactions on all linked accounts for the given
1064
- budget. Linked accounts allow transactions to be imported directly from
1065
- a specified financial institution and this endpoint initiates that
1166
+ description: Imports available transactions on all linked accounts for the given
1167
+ plan. Linked accounts allow transactions to be imported directly from a
1168
+ specified financial institution and this endpoint initiates that
1066
1169
  import. Sending a request to this endpoint is the equivalent of
1067
1170
  clicking "Import" on each account in the web application or tapping the
1068
1171
  "New Transactions" banner in the mobile applications. The response for
1069
1172
  this endpoint contains the transaction ids that have been imported.
1070
1173
  operationId: importTransactions
1071
1174
  parameters:
1072
- - name: budget_id
1175
+ - name: plan_id
1073
1176
  in: path
1074
- description: >-
1075
- The id of the budget. "last-used" can be used to specify the last
1076
- used budget and "default" can be used if default budget selection is
1077
- enabled (see: https://api.ynab.com/#oauth-default-budget).
1177
+ description: 'The id of the plan. "last-used" can be used to specify the last
1178
+ used plan and "default" can be used if default plan selection is
1179
+ enabled (see: https://api.ynab.com/#oauth-default-plan).'
1078
1180
  required: true
1079
1181
  schema:
1080
1182
  type: string
@@ -1092,27 +1194,25 @@ paths:
1092
1194
  schema:
1093
1195
  $ref: "#/components/schemas/TransactionsImportResponse"
1094
1196
  "400":
1095
- description: >-
1096
- The request could not be understood due to malformed syntax or
1197
+ description: The request could not be understood due to malformed syntax or
1097
1198
  validation error(s)
1098
1199
  content:
1099
1200
  application/json:
1100
1201
  schema:
1101
1202
  $ref: "#/components/schemas/ErrorResponse"
1102
- /budgets/{budget_id}/transactions/{transaction_id}:
1203
+ /budgets/{plan_id}/transactions/{transaction_id}:
1103
1204
  get:
1104
1205
  tags:
1105
1206
  - Transactions
1106
- summary: Single transaction
1207
+ summary: Get a transaction
1107
1208
  description: Returns a single transaction
1108
1209
  operationId: getTransactionById
1109
1210
  parameters:
1110
- - name: budget_id
1211
+ - name: plan_id
1111
1212
  in: path
1112
- description: >-
1113
- The id of the budget. "last-used" can be used to specify the last
1114
- used budget and "default" can be used if default budget selection is
1115
- enabled (see: https://api.ynab.com/#oauth-default-budget).
1213
+ description: 'The id of the plan. "last-used" can be used to specify the last
1214
+ used plan and "default" can be used if default plan selection is
1215
+ enabled (see: https://api.ynab.com/#oauth-default-plan).'
1116
1216
  required: true
1117
1217
  schema:
1118
1218
  type: string
@@ -1135,25 +1235,18 @@ paths:
1135
1235
  application/json:
1136
1236
  schema:
1137
1237
  $ref: "#/components/schemas/ErrorResponse"
1138
- default:
1139
- description: An error occurred
1140
- content:
1141
- application/json:
1142
- schema:
1143
- $ref: "#/components/schemas/ErrorResponse"
1144
1238
  put:
1145
1239
  tags:
1146
1240
  - Transactions
1147
- summary: Updates an existing transaction
1241
+ summary: Update a transaction
1148
1242
  description: Updates a single transaction
1149
1243
  operationId: updateTransaction
1150
1244
  parameters:
1151
- - name: budget_id
1245
+ - name: plan_id
1152
1246
  in: path
1153
- description: >-
1154
- The id of the budget. "last-used" can be used to specify the last
1155
- used budget and "default" can be used if default budget selection is
1156
- enabled (see: https://api.ynab.com/#oauth-default-budget).
1247
+ description: 'The id of the plan. "last-used" can be used to specify the last
1248
+ used plan and "default" can be used if default plan selection is
1249
+ enabled (see: https://api.ynab.com/#oauth-default-plan).'
1157
1250
  required: true
1158
1251
  schema:
1159
1252
  type: string
@@ -1166,7 +1259,7 @@ paths:
1166
1259
  requestBody:
1167
1260
  description: The transaction to update
1168
1261
  content:
1169
- "application/json":
1262
+ application/json:
1170
1263
  schema:
1171
1264
  $ref: "#/components/schemas/PutTransactionWrapper"
1172
1265
  required: true
@@ -1178,8 +1271,7 @@ paths:
1178
1271
  schema:
1179
1272
  $ref: "#/components/schemas/TransactionResponse"
1180
1273
  "400":
1181
- description: >-
1182
- The request could not be understood due to malformed syntax or
1274
+ description: The request could not be understood due to malformed syntax or
1183
1275
  validation error(s)
1184
1276
  content:
1185
1277
  application/json:
@@ -1189,16 +1281,15 @@ paths:
1189
1281
  delete:
1190
1282
  tags:
1191
1283
  - Transactions
1192
- summary: Deletes an existing transaction
1284
+ summary: Delete a transaction
1193
1285
  description: Deletes a transaction
1194
1286
  operationId: deleteTransaction
1195
1287
  parameters:
1196
- - name: budget_id
1288
+ - name: plan_id
1197
1289
  in: path
1198
- description: >-
1199
- The id of the budget. "last-used" can be used to specify the last
1200
- used budget and "default" can be used if default budget selection is
1201
- enabled (see: https://api.ynab.com/#oauth-default-budget).
1290
+ description: 'The id of the plan. "last-used" can be used to specify the last
1291
+ used plan and "default" can be used if default plan selection is
1292
+ enabled (see: https://api.ynab.com/#oauth-default-plan).'
1202
1293
  required: true
1203
1294
  schema:
1204
1295
  type: string
@@ -1221,20 +1312,20 @@ paths:
1221
1312
  application/json:
1222
1313
  schema:
1223
1314
  $ref: "#/components/schemas/ErrorResponse"
1224
- /budgets/{budget_id}/accounts/{account_id}/transactions:
1315
+ /budgets/{plan_id}/accounts/{account_id}/transactions:
1225
1316
  get:
1226
1317
  tags:
1227
1318
  - Transactions
1228
- summary: List account transactions
1229
- description: Returns all transactions for a specified account, excluding any pending transactions
1319
+ summary: Get all account transactions
1320
+ description: Returns all transactions for a specified account, excluding any
1321
+ pending transactions
1230
1322
  operationId: getTransactionsByAccount
1231
1323
  parameters:
1232
- - name: budget_id
1324
+ - name: plan_id
1233
1325
  in: path
1234
- description: >-
1235
- The id of the budget. "last-used" can be used to specify the last
1236
- used budget and "default" can be used if default budget selection is
1237
- enabled (see: https://api.ynab.com/#oauth-default-budget).
1326
+ description: 'The id of the plan. "last-used" can be used to specify the last
1327
+ used plan and "default" can be used if default plan selection is
1328
+ enabled (see: https://api.ynab.com/#oauth-default-plan).'
1238
1329
  required: true
1239
1330
  schema:
1240
1331
  type: string
@@ -1246,16 +1337,14 @@ paths:
1246
1337
  type: string
1247
1338
  - name: since_date
1248
1339
  in: query
1249
- description: >-
1250
- If specified, only transactions on or after this date will be
1340
+ description: If specified, only transactions on or after this date will be
1251
1341
  included. The date should be ISO formatted (e.g. 2016-12-30).
1252
1342
  schema:
1253
1343
  type: string
1254
1344
  format: date
1255
1345
  - name: type
1256
1346
  in: query
1257
- description: >-
1258
- If specified, only transactions of the specified type will be
1347
+ description: If specified, only transactions of the specified type will be
1259
1348
  included. "uncategorized" and "unapproved" are currently supported.
1260
1349
  schema:
1261
1350
  type: string
@@ -1264,9 +1353,8 @@ paths:
1264
1353
  - unapproved
1265
1354
  - name: last_knowledge_of_server
1266
1355
  in: query
1267
- description: >-
1268
- The starting server knowledge. If provided, only entities that have
1269
- changed since `last_knowledge_of_server` will be included.
1356
+ description: The starting server knowledge. If provided, only entities that
1357
+ have changed since `last_knowledge_of_server` will be included.
1270
1358
  schema:
1271
1359
  type: integer
1272
1360
  format: int64
@@ -1283,26 +1371,20 @@ paths:
1283
1371
  application/json:
1284
1372
  schema:
1285
1373
  $ref: "#/components/schemas/ErrorResponse"
1286
- default:
1287
- description: An error occurred
1288
- content:
1289
- application/json:
1290
- schema:
1291
- $ref: "#/components/schemas/ErrorResponse"
1292
- /budgets/{budget_id}/categories/{category_id}/transactions:
1374
+ /budgets/{plan_id}/categories/{category_id}/transactions:
1293
1375
  get:
1294
1376
  tags:
1295
1377
  - Transactions
1296
- summary: List category transactions, excluding any pending transactions
1297
- description: Returns all transactions for a specified category
1378
+ summary: Get all category transactions
1379
+ description: Returns all transactions for a specified category, excluding any
1380
+ pending transactions
1298
1381
  operationId: getTransactionsByCategory
1299
1382
  parameters:
1300
- - name: budget_id
1383
+ - name: plan_id
1301
1384
  in: path
1302
- description: >-
1303
- The id of the budget. "last-used" can be used to specify the last
1304
- used budget and "default" can be used if default budget selection is
1305
- enabled (see: https://api.ynab.com/#oauth-default-budget).
1385
+ description: 'The id of the plan. "last-used" can be used to specify the last
1386
+ used plan and "default" can be used if default plan selection is
1387
+ enabled (see: https://api.ynab.com/#oauth-default-plan).'
1306
1388
  required: true
1307
1389
  schema:
1308
1390
  type: string
@@ -1314,16 +1396,14 @@ paths:
1314
1396
  type: string
1315
1397
  - name: since_date
1316
1398
  in: query
1317
- description: >-
1318
- If specified, only transactions on or after this date will be
1399
+ description: If specified, only transactions on or after this date will be
1319
1400
  included. The date should be ISO formatted (e.g. 2016-12-30).
1320
1401
  schema:
1321
1402
  type: string
1322
1403
  format: date
1323
1404
  - name: type
1324
1405
  in: query
1325
- description: >-
1326
- If specified, only transactions of the specified type will be
1406
+ description: If specified, only transactions of the specified type will be
1327
1407
  included. "uncategorized" and "unapproved" are currently supported.
1328
1408
  schema:
1329
1409
  type: string
@@ -1332,9 +1412,8 @@ paths:
1332
1412
  - unapproved
1333
1413
  - name: last_knowledge_of_server
1334
1414
  in: query
1335
- description: >-
1336
- The starting server knowledge. If provided, only entities that have
1337
- changed since `last_knowledge_of_server` will be included.
1415
+ description: The starting server knowledge. If provided, only entities that
1416
+ have changed since `last_knowledge_of_server` will be included.
1338
1417
  schema:
1339
1418
  type: integer
1340
1419
  format: int64
@@ -1351,26 +1430,20 @@ paths:
1351
1430
  application/json:
1352
1431
  schema:
1353
1432
  $ref: "#/components/schemas/ErrorResponse"
1354
- default:
1355
- description: An error occurred
1356
- content:
1357
- application/json:
1358
- schema:
1359
- $ref: "#/components/schemas/ErrorResponse"
1360
- /budgets/{budget_id}/payees/{payee_id}/transactions:
1433
+ /budgets/{plan_id}/payees/{payee_id}/transactions:
1361
1434
  get:
1362
1435
  tags:
1363
1436
  - Transactions
1364
- summary: List payee transactions, excluding any pending transactions
1365
- description: Returns all transactions for a specified payee
1437
+ summary: Get all payee transactions
1438
+ description: Returns all transactions for a specified payee, excluding any
1439
+ pending transactions
1366
1440
  operationId: getTransactionsByPayee
1367
1441
  parameters:
1368
- - name: budget_id
1442
+ - name: plan_id
1369
1443
  in: path
1370
- description: >-
1371
- The id of the budget. "last-used" can be used to specify the last
1372
- used budget and "default" can be used if default budget selection is
1373
- enabled (see: https://api.ynab.com/#oauth-default-budget).
1444
+ description: 'The id of the plan. "last-used" can be used to specify the last
1445
+ used plan and "default" can be used if default plan selection is
1446
+ enabled (see: https://api.ynab.com/#oauth-default-plan).'
1374
1447
  required: true
1375
1448
  schema:
1376
1449
  type: string
@@ -1382,16 +1455,14 @@ paths:
1382
1455
  type: string
1383
1456
  - name: since_date
1384
1457
  in: query
1385
- description: >-
1386
- If specified, only transactions on or after this date will be
1458
+ description: If specified, only transactions on or after this date will be
1387
1459
  included. The date should be ISO formatted (e.g. 2016-12-30).
1388
1460
  schema:
1389
1461
  type: string
1390
1462
  format: date
1391
1463
  - name: type
1392
1464
  in: query
1393
- description: >-
1394
- If specified, only transactions of the specified type will be
1465
+ description: If specified, only transactions of the specified type will be
1395
1466
  included. "uncategorized" and "unapproved" are currently supported.
1396
1467
  schema:
1397
1468
  type: string
@@ -1400,9 +1471,8 @@ paths:
1400
1471
  - unapproved
1401
1472
  - name: last_knowledge_of_server
1402
1473
  in: query
1403
- description: >-
1404
- The starting server knowledge. If provided, only entities that have
1405
- changed since `last_knowledge_of_server` will be included.
1474
+ description: The starting server knowledge. If provided, only entities that
1475
+ have changed since `last_knowledge_of_server` will be included.
1406
1476
  schema:
1407
1477
  type: integer
1408
1478
  format: int64
@@ -1419,49 +1489,40 @@ paths:
1419
1489
  application/json:
1420
1490
  schema:
1421
1491
  $ref: "#/components/schemas/ErrorResponse"
1422
- default:
1423
- description: An error occurred
1424
- content:
1425
- application/json:
1426
- schema:
1427
- $ref: "#/components/schemas/ErrorResponse"
1428
- /budgets/{budget_id}/months/{month}/transactions:
1492
+ /budgets/{plan_id}/months/{month}/transactions:
1429
1493
  get:
1430
1494
  tags:
1431
1495
  - Transactions
1432
- summary: List transactions in month, excluding any pending transactions
1433
- description: Returns all transactions for a specified month
1496
+ summary: Get all plan month transactions
1497
+ description: Returns all transactions for a specified month, excluding any
1498
+ pending transactions
1434
1499
  operationId: getTransactionsByMonth
1435
1500
  parameters:
1436
- - name: budget_id
1501
+ - name: plan_id
1437
1502
  in: path
1438
- description: >-
1439
- The id of the budget. "last-used" can be used to specify the last
1440
- used budget and "default" can be used if default budget selection is
1441
- enabled (see: https://api.ynab.com/#oauth-default-budget).
1503
+ description: 'The id of the plan. "last-used" can be used to specify the last
1504
+ used plan and "default" can be used if default plan selection is
1505
+ enabled (see: https://api.ynab.com/#oauth-default-plan).'
1442
1506
  required: true
1443
1507
  schema:
1444
1508
  type: string
1445
1509
  - name: month
1446
1510
  in: path
1447
- description: >-
1448
- The budget month in ISO format (e.g. 2016-12-01) ("current" can also
1511
+ description: The plan month in ISO format (e.g. 2016-12-01) ("current" can also
1449
1512
  be used to specify the current calendar month (UTC))
1450
1513
  required: true
1451
1514
  schema:
1452
1515
  type: string
1453
1516
  - name: since_date
1454
1517
  in: query
1455
- description: >-
1456
- If specified, only transactions on or after this date will be
1518
+ description: If specified, only transactions on or after this date will be
1457
1519
  included. The date should be ISO formatted (e.g. 2016-12-30).
1458
1520
  schema:
1459
1521
  type: string
1460
1522
  format: date
1461
1523
  - name: type
1462
1524
  in: query
1463
- description: >-
1464
- If specified, only transactions of the specified type will be
1525
+ description: If specified, only transactions of the specified type will be
1465
1526
  included. "uncategorized" and "unapproved" are currently supported.
1466
1527
  schema:
1467
1528
  type: string
@@ -1470,9 +1531,8 @@ paths:
1470
1531
  - unapproved
1471
1532
  - name: last_knowledge_of_server
1472
1533
  in: query
1473
- description: >-
1474
- The starting server knowledge. If provided, only entities that have
1475
- changed since `last_knowledge_of_server` will be included.
1534
+ description: The starting server knowledge. If provided, only entities that
1535
+ have changed since `last_knowledge_of_server` will be included.
1476
1536
  schema:
1477
1537
  type: integer
1478
1538
  format: int64
@@ -1482,41 +1542,33 @@ paths:
1482
1542
  content:
1483
1543
  application/json:
1484
1544
  schema:
1485
- $ref: "#/components/schemas/HybridTransactionsResponse"
1545
+ $ref: "#/components/schemas/TransactionsResponse"
1486
1546
  "404":
1487
1547
  description: No transactions were found
1488
1548
  content:
1489
1549
  application/json:
1490
1550
  schema:
1491
1551
  $ref: "#/components/schemas/ErrorResponse"
1492
- default:
1493
- description: An error occurred
1494
- content:
1495
- application/json:
1496
- schema:
1497
- $ref: "#/components/schemas/ErrorResponse"
1498
- /budgets/{budget_id}/scheduled_transactions:
1552
+ /budgets/{plan_id}/scheduled_transactions:
1499
1553
  get:
1500
1554
  tags:
1501
1555
  - Scheduled Transactions
1502
- summary: List scheduled transactions
1556
+ summary: Get all scheduled transactions
1503
1557
  description: Returns all scheduled transactions
1504
1558
  operationId: getScheduledTransactions
1505
1559
  parameters:
1506
- - name: budget_id
1560
+ - name: plan_id
1507
1561
  in: path
1508
- description: >-
1509
- The id of the budget. "last-used" can be used to specify the last
1510
- used budget and "default" can be used if default budget selection is
1511
- enabled (see: https://api.ynab.com/#oauth-default-budget).
1562
+ description: 'The id of the plan. "last-used" can be used to specify the last
1563
+ used plan and "default" can be used if default plan selection is
1564
+ enabled (see: https://api.ynab.com/#oauth-default-plan).'
1512
1565
  required: true
1513
1566
  schema:
1514
1567
  type: string
1515
1568
  - name: last_knowledge_of_server
1516
1569
  in: query
1517
- description: >-
1518
- The starting server knowledge. If provided, only entities that have
1519
- changed since `last_knowledge_of_server` will be included.
1570
+ description: The starting server knowledge. If provided, only entities that
1571
+ have changed since `last_knowledge_of_server` will be included.
1520
1572
  schema:
1521
1573
  type: integer
1522
1574
  format: int64
@@ -1533,34 +1585,26 @@ paths:
1533
1585
  application/json:
1534
1586
  schema:
1535
1587
  $ref: "#/components/schemas/ErrorResponse"
1536
- default:
1537
- description: An error occurred
1538
- content:
1539
- application/json:
1540
- schema:
1541
- $ref: "#/components/schemas/ErrorResponse"
1542
1588
  post:
1543
1589
  tags:
1544
1590
  - Scheduled Transactions
1545
- summary: Create a single scheduled transaction
1546
- description: >-
1547
- Creates a single scheduled transaction (a transaction with a future date).
1591
+ summary: Create a scheduled transaction
1592
+ description: Creates a single scheduled transaction (a transaction with a future
1593
+ date).
1548
1594
  operationId: createScheduledTransaction
1549
1595
  parameters:
1550
- - name: budget_id
1596
+ - name: plan_id
1551
1597
  in: path
1552
- description: >-
1553
- The id of the budget. "last-used" can be used to specify the last
1554
- used budget and "default" can be used if default budget selection is
1555
- enabled (see: https://api.ynab.com/#oauth-default-budget).
1598
+ description: 'The id of the plan. "last-used" can be used to specify the last
1599
+ used plan and "default" can be used if default plan selection is
1600
+ enabled (see: https://api.ynab.com/#oauth-default-plan).'
1556
1601
  required: true
1557
1602
  schema:
1558
1603
  type: string
1559
1604
  requestBody:
1560
- description: >-
1561
- The scheduled transaction to create
1605
+ description: The scheduled transaction to create
1562
1606
  content:
1563
- "application/json":
1607
+ application/json:
1564
1608
  schema:
1565
1609
  $ref: "#/components/schemas/PostScheduledTransactionWrapper"
1566
1610
  required: true
@@ -1572,28 +1616,26 @@ paths:
1572
1616
  schema:
1573
1617
  $ref: "#/components/schemas/ScheduledTransactionResponse"
1574
1618
  "400":
1575
- description: >-
1576
- The request could not be understood due to malformed syntax or
1619
+ description: The request could not be understood due to malformed syntax or
1577
1620
  validation error(s).
1578
1621
  content:
1579
1622
  application/json:
1580
1623
  schema:
1581
1624
  $ref: "#/components/schemas/ErrorResponse"
1582
1625
  x-codegen-request-body-name: data
1583
- /budgets/{budget_id}/scheduled_transactions/{scheduled_transaction_id}:
1626
+ /budgets/{plan_id}/scheduled_transactions/{scheduled_transaction_id}:
1584
1627
  get:
1585
1628
  tags:
1586
1629
  - Scheduled Transactions
1587
- summary: Single scheduled transaction
1630
+ summary: Get a scheduled transaction
1588
1631
  description: Returns a single scheduled transaction
1589
1632
  operationId: getScheduledTransactionById
1590
1633
  parameters:
1591
- - name: budget_id
1634
+ - name: plan_id
1592
1635
  in: path
1593
- description: >-
1594
- The id of the budget. "last-used" can be used to specify the last
1595
- used budget and "default" can be used if default budget selection is
1596
- enabled (see: https://api.ynab.com/#oauth-default-budget).
1636
+ description: 'The id of the plan. "last-used" can be used to specify the last
1637
+ used plan and "default" can be used if default plan selection is
1638
+ enabled (see: https://api.ynab.com/#oauth-default-plan).'
1597
1639
  required: true
1598
1640
  schema:
1599
1641
  type: string
@@ -1616,25 +1658,18 @@ paths:
1616
1658
  application/json:
1617
1659
  schema:
1618
1660
  $ref: "#/components/schemas/ErrorResponse"
1619
- default:
1620
- description: An error occurred
1621
- content:
1622
- application/json:
1623
- schema:
1624
- $ref: "#/components/schemas/ErrorResponse"
1625
1661
  put:
1626
1662
  tags:
1627
1663
  - Scheduled Transactions
1628
- summary: Updates an existing scheduled transaction
1664
+ summary: Update a scheduled transaction
1629
1665
  description: Updates a single scheduled transaction
1630
1666
  operationId: updateScheduledTransaction
1631
1667
  parameters:
1632
- - name: budget_id
1668
+ - name: plan_id
1633
1669
  in: path
1634
- description: >-
1635
- The id of the budget. "last-used" can be used to specify the last
1636
- used budget and "default" can be used if default budget selection is
1637
- enabled (see: https://api.ynab.com/#oauth-default-budget).
1670
+ description: 'The id of the plan. "last-used" can be used to specify the last
1671
+ used plan and "default" can be used if default plan selection is
1672
+ enabled (see: https://api.ynab.com/#oauth-default-plan).'
1638
1673
  required: true
1639
1674
  schema:
1640
1675
  type: string
@@ -1647,7 +1682,7 @@ paths:
1647
1682
  requestBody:
1648
1683
  description: The scheduled transaction to update
1649
1684
  content:
1650
- "application/json":
1685
+ application/json:
1651
1686
  schema:
1652
1687
  $ref: "#/components/schemas/PutScheduledTransactionWrapper"
1653
1688
  required: true
@@ -1659,8 +1694,7 @@ paths:
1659
1694
  schema:
1660
1695
  $ref: "#/components/schemas/ScheduledTransactionResponse"
1661
1696
  "400":
1662
- description: >-
1663
- The request could not be understood due to malformed syntax or
1697
+ description: The request could not be understood due to malformed syntax or
1664
1698
  validation error(s)
1665
1699
  content:
1666
1700
  application/json:
@@ -1669,16 +1703,15 @@ paths:
1669
1703
  delete:
1670
1704
  tags:
1671
1705
  - Scheduled Transactions
1672
- summary: Deletes an existing scheduled transaction
1706
+ summary: Delete a scheduled transaction
1673
1707
  description: Deletes a scheduled transaction
1674
1708
  operationId: deleteScheduledTransaction
1675
1709
  parameters:
1676
- - name: budget_id
1710
+ - name: plan_id
1677
1711
  in: path
1678
- description: >-
1679
- The id of the budget. "last-used" can be used to specify the last
1680
- used budget and "default" can be used if default budget selection is
1681
- enabled (see: https://api.ynab.com/#oauth-default-budget).
1712
+ description: 'The id of the plan. "last-used" can be used to specify the last
1713
+ used plan and "default" can be used if default plan selection is
1714
+ enabled (see: https://api.ynab.com/#oauth-default-plan).'
1682
1715
  required: true
1683
1716
  schema:
1684
1717
  type: string
@@ -1746,14 +1779,14 @@ components:
1746
1779
  DateFormat:
1747
1780
  required:
1748
1781
  - format
1749
- type: object
1782
+ type:
1783
+ - object
1784
+ - "null"
1750
1785
  properties:
1751
1786
  format:
1752
1787
  type: string
1753
- nullable: true
1754
- description: >-
1755
- The date format setting for the budget. In some cases the format will
1756
- not be available and will be specified as null.
1788
+ description: The date format setting for the plan. In some cases the format
1789
+ will not be available and will be specified as null.
1757
1790
  CurrencyFormat:
1758
1791
  required:
1759
1792
  - currency_symbol
@@ -1764,7 +1797,9 @@ components:
1764
1797
  - group_separator
1765
1798
  - iso_code
1766
1799
  - symbol_first
1767
- type: object
1800
+ type:
1801
+ - object
1802
+ - "null"
1768
1803
  properties:
1769
1804
  iso_code:
1770
1805
  type: string
@@ -1783,11 +1818,9 @@ components:
1783
1818
  type: string
1784
1819
  display_symbol:
1785
1820
  type: boolean
1786
- nullable: true
1787
- description: >-
1788
- The currency format setting for the budget. In some cases the format
1821
+ description: The currency format setting for the plan. In some cases the format
1789
1822
  will not be available and will be specified as null.
1790
- BudgetSummaryResponse:
1823
+ PlanSummaryResponse:
1791
1824
  required:
1792
1825
  - data
1793
1826
  type: object
@@ -1800,10 +1833,12 @@ components:
1800
1833
  budgets:
1801
1834
  type: array
1802
1835
  items:
1803
- $ref: "#/components/schemas/BudgetSummary"
1836
+ $ref: "#/components/schemas/PlanSummary"
1804
1837
  default_budget:
1805
- $ref: "#/components/schemas/BudgetSummary"
1806
- BudgetSummary:
1838
+ allOf:
1839
+ - $ref: "#/components/schemas/PlanSummary"
1840
+ nullable: true
1841
+ PlanSummary:
1807
1842
  required:
1808
1843
  - id
1809
1844
  - name
@@ -1816,17 +1851,16 @@ components:
1816
1851
  type: string
1817
1852
  last_modified_on:
1818
1853
  type: string
1819
- description: >-
1820
- The last time any changes were made to the budget from either a web
1854
+ description: The last time any changes were made to the plan from either a web
1821
1855
  or mobile client
1822
1856
  format: date-time
1823
1857
  first_month:
1824
1858
  type: string
1825
- description: The earliest budget month
1859
+ description: The earliest plan month
1826
1860
  format: date
1827
1861
  last_month:
1828
1862
  type: string
1829
- description: The latest budget month
1863
+ description: The latest plan month
1830
1864
  format: date
1831
1865
  date_format:
1832
1866
  $ref: "#/components/schemas/DateFormat"
@@ -1834,12 +1868,11 @@ components:
1834
1868
  $ref: "#/components/schemas/CurrencyFormat"
1835
1869
  accounts:
1836
1870
  type: array
1837
- description: >-
1838
- The budget accounts (only included if `include_accounts=true`
1871
+ description: The plan accounts (only included if `include_accounts=true`
1839
1872
  specified as query parameter)
1840
1873
  items:
1841
1874
  $ref: "#/components/schemas/Account"
1842
- BudgetDetailResponse:
1875
+ PlanDetailResponse:
1843
1876
  required:
1844
1877
  - data
1845
1878
  type: object
@@ -1851,14 +1884,14 @@ components:
1851
1884
  type: object
1852
1885
  properties:
1853
1886
  budget:
1854
- $ref: "#/components/schemas/BudgetDetail"
1887
+ $ref: "#/components/schemas/PlanDetail"
1855
1888
  server_knowledge:
1856
1889
  type: integer
1857
1890
  description: The knowledge of the server
1858
1891
  format: int64
1859
- BudgetDetail:
1892
+ PlanDetail:
1860
1893
  allOf:
1861
- - $ref: "#/components/schemas/BudgetSummary"
1894
+ - $ref: "#/components/schemas/PlanSummary"
1862
1895
  - type: object
1863
1896
  properties:
1864
1897
  accounts:
@@ -1901,7 +1934,7 @@ components:
1901
1934
  type: array
1902
1935
  items:
1903
1936
  $ref: "#/components/schemas/ScheduledSubTransaction"
1904
- BudgetSettingsResponse:
1937
+ PlanSettingsResponse:
1905
1938
  required:
1906
1939
  - data
1907
1940
  type: object
@@ -1912,8 +1945,8 @@ components:
1912
1945
  type: object
1913
1946
  properties:
1914
1947
  settings:
1915
- $ref: "#/components/schemas/BudgetSettings"
1916
- BudgetSettings:
1948
+ $ref: "#/components/schemas/PlanSettings"
1949
+ PlanSettings:
1917
1950
  required:
1918
1951
  - currency_format
1919
1952
  - date_format
@@ -1977,16 +2010,17 @@ components:
1977
2010
  $ref: "#/components/schemas/AccountType"
1978
2011
  on_budget:
1979
2012
  type: boolean
1980
- description: Whether this account is on budget or not
2013
+ description: Whether this account is "on budget" or not
1981
2014
  closed:
1982
2015
  type: boolean
1983
2016
  description: Whether this account is closed or not
1984
2017
  note:
1985
- type: string
1986
- nullable: true
2018
+ type:
2019
+ - string
2020
+ - "null"
1987
2021
  balance:
1988
2022
  type: integer
1989
- description: The current balance of the account in milliunits format
2023
+ description: The current available balance of the account in milliunits format
1990
2024
  format: int64
1991
2025
  cleared_balance:
1992
2026
  type: integer
@@ -1997,32 +2031,31 @@ components:
1997
2031
  description: The current uncleared balance of the account in milliunits format
1998
2032
  format: int64
1999
2033
  transfer_payee_id:
2000
- type: string
2001
- nullable: true
2034
+ type:
2035
+ - string
2036
+ - "null"
2002
2037
  description: The payee id which should be used when transferring to this account
2003
2038
  format: uuid
2004
2039
  direct_import_linked:
2005
2040
  type: boolean
2006
- description: >-
2007
- Whether or not the account is linked to a financial institution for
2041
+ description: Whether or not the account is linked to a financial institution for
2008
2042
  automatic transaction import.
2009
2043
  direct_import_in_error:
2010
2044
  type: boolean
2011
- description: >-
2012
- If an account linked to a financial institution
2045
+ description: If an account linked to a financial institution
2013
2046
  (direct_import_linked=true) and the linked connection is not in a
2014
2047
  healthy state, this will be true.
2015
2048
  last_reconciled_at:
2016
- type: string
2017
- nullable: true
2049
+ type:
2050
+ - string
2051
+ - "null"
2018
2052
  description: A date/time specifying when the account was last reconciled.
2019
2053
  format: date-time
2020
2054
  debt_original_balance:
2021
- type: integer
2022
- nullable: true
2023
- description: >-
2024
- The original debt/loan account balance, specified in milliunits
2025
- format.
2055
+ type:
2056
+ - integer
2057
+ - "null"
2058
+ description: This field is deprecated and will always be null.
2026
2059
  format: int64
2027
2060
  debt_interest_rates:
2028
2061
  $ref: "#/components/schemas/LoanAccountPeriodicValue"
@@ -2032,8 +2065,7 @@ components:
2032
2065
  $ref: "#/components/schemas/LoanAccountPeriodicValue"
2033
2066
  deleted:
2034
2067
  type: boolean
2035
- description: >-
2036
- Whether or not the account has been deleted. Deleted accounts will
2068
+ description: Whether or not the account has been deleted. Deleted accounts will
2037
2069
  only be included in delta requests.
2038
2070
  PostAccountWrapper:
2039
2071
  required:
@@ -2059,8 +2091,9 @@ components:
2059
2091
  description: The current balance of the account in milliunits format
2060
2092
  format: int64
2061
2093
  LoanAccountPeriodicValue:
2062
- type: object
2063
- nullable: true
2094
+ type:
2095
+ - object
2096
+ - "null"
2064
2097
  additionalProperties:
2065
2098
  type: integer
2066
2099
  format: int64
@@ -2121,9 +2154,8 @@ components:
2121
2154
  properties:
2122
2155
  categories:
2123
2156
  type: array
2124
- description: >-
2125
- Category group categories. Amounts (budgeted, activity,
2126
- balance, etc.) are specific to the current budget month (UTC).
2157
+ description: Category group categories. Amounts (assigned, activity, available,
2158
+ etc.) are specific to the current plan month (UTC).
2127
2159
  items:
2128
2160
  $ref: "#/components/schemas/Category"
2129
2161
  CategoryGroup:
@@ -2144,8 +2176,7 @@ components:
2144
2176
  description: Whether or not the category group is hidden
2145
2177
  deleted:
2146
2178
  type: boolean
2147
- description: >-
2148
- Whether or not the category group has been deleted. Deleted
2179
+ description: Whether or not the category group has been deleted. Deleted
2149
2180
  category groups will only be included in delta requests.
2150
2181
  Category:
2151
2182
  required:
@@ -2173,16 +2204,18 @@ components:
2173
2204
  type: boolean
2174
2205
  description: Whether or not the category is hidden
2175
2206
  original_category_group_id:
2176
- type: string
2207
+ type:
2208
+ - string
2209
+ - "null"
2177
2210
  description: "DEPRECATED: No longer used. Value will always be null."
2178
2211
  format: uuid
2179
- nullable: true
2180
2212
  note:
2181
- type: string
2182
- nullable: true
2213
+ type:
2214
+ - string
2215
+ - "null"
2183
2216
  budgeted:
2184
2217
  type: integer
2185
- description: Budgeted amount in milliunits format
2218
+ description: Assigned (budgeted) amount in milliunits format
2186
2219
  format: int64
2187
2220
  activity:
2188
2221
  type: integer
@@ -2190,12 +2223,13 @@ components:
2190
2223
  format: int64
2191
2224
  balance:
2192
2225
  type: integer
2193
- description: Balance in milliunits format
2226
+ description: Available balance in milliunits format
2194
2227
  format: int64
2195
2228
  goal_type:
2196
- type: string
2197
- description: >-
2198
- The type of goal, if the category has a goal (TB='Target Category
2229
+ type:
2230
+ - string
2231
+ - "null"
2232
+ description: The type of goal, if the category has a goal (TB='Target Category
2199
2233
  Balance', TBD='Target Category Balance by Date', MF='Monthly
2200
2234
  Funding', NEED='Plan Your Spending')
2201
2235
  enum:
@@ -2205,30 +2239,30 @@ components:
2205
2239
  - NEED
2206
2240
  - DEBT
2207
2241
  - null
2208
- nullable: true
2209
2242
  goal_needs_whole_amount:
2210
- type: boolean
2211
- description: >-
2212
- Indicates the monthly rollover behavior for "NEED"-type goals. When
2243
+ type:
2244
+ - boolean
2245
+ - "null"
2246
+ description: Indicates the monthly rollover behavior for "NEED"-type goals. When
2213
2247
  "true", the goal will always ask for the target amount in the new
2214
- month ("Set Aside"). When "false", previous month category funding is
2215
- used ("Refill"). For other goal types, this field will be null.
2216
- nullable: true
2248
+ month ("Set Aside"). When "false", previous month category funding
2249
+ is used ("Refill"). For other goal types, this field will be null.
2217
2250
  default: null
2218
2251
  goal_day:
2219
- type: integer
2220
- description: >-
2221
- A day offset modifier for the goal's due date. When goal_cadence is
2252
+ type:
2253
+ - integer
2254
+ - "null"
2255
+ description: A day offset modifier for the goal's due date. When goal_cadence is
2222
2256
  2 (Weekly), this value specifies which day of the week the goal is
2223
2257
  due (0 = Sunday, 6 = Saturday). Otherwise, this value specifies
2224
2258
  which day of the month the goal is due (1 = 1st, 31 = 31st, null =
2225
2259
  Last day of Month).
2226
2260
  format: int32
2227
- nullable: true
2228
2261
  goal_cadence:
2229
- type: integer
2230
- description: >-
2231
- The goal cadence. Value in range 0-14. There are two subsets of
2262
+ type:
2263
+ - integer
2264
+ - "null"
2265
+ description: The goal cadence. Value in range 0-14. There are two subsets of
2232
2266
  these values which behave differently. For values 0, 1, 2, and 13,
2233
2267
  the goal's due date repeats every goal_cadence *
2234
2268
  goal_cadence_frequency, where 0 = None, 1 = Monthly, 2 = Weekly, and
@@ -2238,50 +2272,59 @@ components:
2238
2272
  every goal_cadence, where 3 = Every 2 Months, 4 = Every 3 Months,
2239
2273
  ..., 12 = Every 11 Months, and 14 = Every 2 Years.
2240
2274
  format: int32
2241
- nullable: true
2242
2275
  goal_cadence_frequency:
2243
- type: integer
2244
- description: >-
2245
- The goal cadence frequency. When goal_cadence is 0, 1, 2, or 13, a
2276
+ type:
2277
+ - integer
2278
+ - "null"
2279
+ description: The goal cadence frequency. When goal_cadence is 0, 1, 2, or 13, a
2246
2280
  goal's due date repeats every goal_cadence * goal_cadence_frequency.
2247
2281
  For example, goal_cadence 1 with goal_cadence_frequency 2 means the
2248
2282
  goal is due every other month. When goal_cadence is 3-12 or 14,
2249
2283
  goal_cadence_frequency is ignored.
2250
2284
  format: int32
2251
- nullable: true
2252
2285
  goal_creation_month:
2253
- type: string
2286
+ type:
2287
+ - string
2288
+ - "null"
2254
2289
  description: The month a goal was created
2255
2290
  format: date
2256
- nullable: true
2257
2291
  goal_target:
2258
- type: integer
2292
+ type:
2293
+ - integer
2294
+ - "null"
2259
2295
  description: The goal target amount in milliunits
2260
2296
  format: int64
2261
- nullable: true
2262
2297
  goal_target_month:
2263
- type: string
2264
- description: >-
2265
- The original target month for the goal to be completed. Only some
2266
- goal types specify this date.
2298
+ type:
2299
+ - string
2300
+ - "null"
2301
+ description: "DEPRECATED: No longer used. Use `goal_target_date` instead."
2302
+ format: date
2303
+ goal_target_date:
2304
+ type:
2305
+ - string
2306
+ - "null"
2307
+ description: The target date for the goal to be completed. Only some goal types
2308
+ specify this date.
2267
2309
  format: date
2268
- nullable: true
2269
2310
  goal_percentage_complete:
2270
- type: integer
2311
+ type:
2312
+ - integer
2313
+ - "null"
2271
2314
  description: The percentage completion of the goal
2272
2315
  format: int32
2273
- nullable: true
2274
2316
  goal_months_to_budget:
2275
- type: integer
2276
- description: >-
2277
- The number of months, including the current month, left in the
2317
+ type:
2318
+ - integer
2319
+ - "null"
2320
+ description: The number of months, including the current month, left in the
2278
2321
  current goal period.
2279
2322
  format: int32
2280
- nullable: true
2281
2323
  goal_under_funded:
2282
- type: integer
2283
- description: >-
2284
- The amount of funding still needed in the current month to stay on
2324
+ type:
2325
+ - integer
2326
+ - "null"
2327
+ description: The amount of funding still needed in the current month to stay on
2285
2328
  track towards completing the goal within the current goal period.
2286
2329
  This amount will generally correspond to the 'Underfunded' amount in
2287
2330
  the web and mobile clients except when viewing a category with a
@@ -2289,32 +2332,30 @@ components:
2289
2332
  clients will ignore any funding from a prior goal period when
2290
2333
  viewing category with a Needed for Spending Goal in a future month.
2291
2334
  format: int64
2292
- nullable: true
2293
2335
  goal_overall_funded:
2294
- type: integer
2295
- description: >-
2296
- The total amount funded towards the goal within the current goal
2336
+ type:
2337
+ - integer
2338
+ - "null"
2339
+ description: The total amount funded towards the goal within the current goal
2297
2340
  period.
2298
2341
  format: int64
2299
- nullable: true
2300
2342
  goal_overall_left:
2301
- type: integer
2302
- description: >-
2303
- The amount of funding still needed to complete the goal within the
2343
+ type:
2344
+ - integer
2345
+ - "null"
2346
+ description: The amount of funding still needed to complete the goal within the
2304
2347
  current goal period.
2305
2348
  format: int64
2306
- nullable: true
2307
2349
  goal_snoozed_at:
2308
- type: string
2309
- description: >-
2310
- The date/time the goal was snoozed. If the goal is not snoozed, this
2311
- will be null.
2350
+ type:
2351
+ - string
2352
+ - "null"
2353
+ description: The date/time the goal was snoozed. If the goal is not snoozed,
2354
+ this will be null.
2312
2355
  format: date-time
2313
- nullable: true
2314
2356
  deleted:
2315
2357
  type: boolean
2316
- description: >-
2317
- Whether or not the category has been deleted. Deleted categories
2358
+ description: Whether or not the category has been deleted. Deleted categories
2318
2359
  will only be included in delta requests.
2319
2360
  SaveCategoryResponse:
2320
2361
  required:
@@ -2333,6 +2374,23 @@ components:
2333
2374
  type: integer
2334
2375
  description: The knowledge of the server
2335
2376
  format: int64
2377
+ SaveCategoryGroupResponse:
2378
+ required:
2379
+ - data
2380
+ type: object
2381
+ properties:
2382
+ data:
2383
+ required:
2384
+ - category_group
2385
+ - server_knowledge
2386
+ type: object
2387
+ properties:
2388
+ category_group:
2389
+ $ref: "#/components/schemas/CategoryGroup"
2390
+ server_knowledge:
2391
+ type: integer
2392
+ description: The knowledge of the server
2393
+ format: int64
2336
2394
  PayeesResponse:
2337
2395
  required:
2338
2396
  - data
@@ -2394,16 +2452,15 @@ components:
2394
2452
  name:
2395
2453
  type: string
2396
2454
  transfer_account_id:
2397
- type: string
2398
- nullable: true
2399
- description: >-
2400
- If a transfer payee, the `account_id` to which this payee transfers
2455
+ type:
2456
+ - string
2457
+ - "null"
2458
+ description: If a transfer payee, the `account_id` to which this payee transfers
2401
2459
  to
2402
2460
  deleted:
2403
2461
  type: boolean
2404
- description: >-
2405
- Whether or not the payee has been deleted. Deleted payees will only
2406
- be included in delta requests.
2462
+ description: Whether or not the payee has been deleted. Deleted payees will
2463
+ only be included in delta requests.
2407
2464
  PayeeLocationsResponse:
2408
2465
  required:
2409
2466
  - data
@@ -2451,8 +2508,7 @@ components:
2451
2508
  type: string
2452
2509
  deleted:
2453
2510
  type: boolean
2454
- description: >-
2455
- Whether or not the payee location has been deleted. Deleted payee
2511
+ description: Whether or not the payee location has been deleted. Deleted payee
2456
2512
  locations will only be included in delta requests.
2457
2513
  TransactionsResponse:
2458
2514
  required:
@@ -2527,48 +2583,48 @@ components:
2527
2583
  properties:
2528
2584
  import_id:
2529
2585
  maxLength: 36
2530
- type: string
2531
- nullable: true
2532
- description: >-
2533
- If specified, a new transaction will be assigned this `import_id`
2586
+ type:
2587
+ - string
2588
+ - "null"
2589
+ description: 'If specified, a new transaction will be assigned this `import_id`
2534
2590
  and considered "imported". We will also attempt to match this
2535
- imported transaction to an existing "user-entered" transaction on the
2536
- same account, with the same amount, and with a date +/-10 days from
2537
- the imported transaction date.<br><br>Transactions imported through
2538
- File Based Import or Direct Import (not through the API) are
2539
- assigned an import_id in the format:
2540
- 'YNAB:[milliunit_amount]:[iso_date]:[occurrence]'. For example, a
2541
- transaction dated 2015-12-30 in the amount of -$294.23 USD would
2542
- have an import_id of 'YNAB:-294230:2015-12-30:1'. If a second
2543
- transaction on the same account was imported and had the same date
2544
- and same amount, its import_id would be
2545
- 'YNAB:-294230:2015-12-30:2'. Using a consistent format will prevent
2546
- duplicates through Direct Import and File Based Import.<br><br>If
2547
- import_id is omitted or specified as null, the transaction will be
2548
- treated as a "user-entered" transaction. As such, it will be
2549
- eligible to be matched against transactions later being imported
2550
- (via DI, FBI, or API).
2591
+ imported transaction to an existing "user-entered" transaction
2592
+ on the same account, with the same amount, and with a date +/-10
2593
+ days from the imported transaction date.<br><br>Transactions
2594
+ imported through File Based Import or Direct Import (not through
2595
+ the API) are assigned an import_id in the format:
2596
+ ''YNAB:[milliunit_amount]:[iso_date]:[occurrence]''. For example,
2597
+ a transaction dated 2015-12-30 in the amount of -$294.23 USD
2598
+ would have an import_id of ''YNAB:-294230:2015-12-30:1''. If a
2599
+ second transaction on the same account was imported and had the
2600
+ same date and same amount, its import_id would be
2601
+ ''YNAB:-294230:2015-12-30:2''. Using a consistent format will
2602
+ prevent duplicates through Direct Import and File Based
2603
+ Import.<br><br>If import_id is omitted or specified as null, the
2604
+ transaction will be treated as a "user-entered" transaction.
2605
+ As such, it will be eligible to be matched against transactions
2606
+ later being imported (via DI, FBI, or API).'
2551
2607
  SaveTransactionWithIdOrImportId:
2552
2608
  allOf:
2553
2609
  - type: object
2554
2610
  properties:
2555
2611
  id:
2556
- type: string
2557
- nullable: true
2558
- description: >-
2559
- If specified, this id will be used to lookup a transaction by
2560
- its `id` for the purpose of updating the transaction itself.
2561
- If not specified, an `import_id` should be supplied.
2612
+ type:
2613
+ - string
2614
+ - "null"
2615
+ description: If specified, this id will be used to lookup a transaction by its
2616
+ `id` for the purpose of updating the transaction itself. If not
2617
+ specified, an `import_id` should be supplied.
2562
2618
  import_id:
2563
2619
  maxLength: 36
2564
- type: string
2565
- nullable: true
2566
- description: >-
2567
- If specified, this id will be used to lookup a transaction by
2568
- its `import_id` for the purpose of updating the transaction itself.
2620
+ type:
2621
+ - string
2622
+ - "null"
2623
+ description: If specified, this id will be used to lookup a transaction by its
2624
+ `import_id` for the purpose of updating the transaction itself.
2569
2625
  If not specified, an `id` should be supplied. You may not
2570
- provide both an `id` and an `import_id` and updating an `import_id`
2571
- on an existing transaction is not allowed.
2626
+ provide both an `id` and an `import_id` and updating an
2627
+ `import_id` on an existing transaction is not allowed.
2572
2628
  - $ref: "#/components/schemas/SaveTransactionWithOptionalFields"
2573
2629
  SaveTransactionWithOptionalFields:
2574
2630
  type: object
@@ -2578,44 +2634,42 @@ components:
2578
2634
  format: uuid
2579
2635
  date:
2580
2636
  type: string
2581
- description: >-
2582
- The transaction date in ISO format (e.g. 2016-12-01). Future dates
2637
+ description: The transaction date in ISO format (e.g. 2016-12-01). Future dates
2583
2638
  (scheduled transactions) are not permitted. Split transaction dates
2584
2639
  cannot be changed and if a different date is supplied it will be
2585
2640
  ignored.
2586
2641
  format: date
2587
2642
  amount:
2588
2643
  type: integer
2589
- description: >-
2590
- The transaction amount in milliunits format. Split transaction
2644
+ description: The transaction amount in milliunits format. Split transaction
2591
2645
  amounts cannot be changed and if a different amount is supplied it
2592
2646
  will be ignored.
2593
2647
  format: int64
2594
2648
  payee_id:
2595
- type: string
2596
- nullable: true
2597
- description: >-
2598
- The payee for the transaction. To create a transfer between two
2649
+ type:
2650
+ - string
2651
+ - "null"
2652
+ description: The payee for the transaction. To create a transfer between two
2599
2653
  accounts, use the account transfer payee pointing to the target
2600
2654
  account. Account transfer payees are specified as
2601
2655
  `transfer_payee_id` on the account resource.
2602
2656
  format: uuid
2603
2657
  payee_name:
2604
2658
  maxLength: 200
2605
- type: string
2606
- nullable: true
2607
- description: >-
2608
- The payee name. If a `payee_name` value is provided and `payee_id`
2659
+ type:
2660
+ - string
2661
+ - "null"
2662
+ description: The payee name. If a `payee_name` value is provided and `payee_id`
2609
2663
  has a null value, the `payee_name` value will be used to resolve the
2610
2664
  payee by either (1) a matching payee rename rule (only if
2611
2665
  `import_id` is also specified) or (2) a payee with the same name or
2612
2666
  (3) creation of a new payee.
2613
2667
  category_id:
2614
- type: string
2615
- nullable: true
2616
- description: >-
2617
- The category for the transaction. To configure a split transaction,
2618
- you can specify null for `category_id` and provide a
2668
+ type:
2669
+ - string
2670
+ - "null"
2671
+ description: The category for the transaction. To configure a split
2672
+ transaction, you can specify null for `category_id` and provide a
2619
2673
  `subtransactions` array as part of the transaction object. If an
2620
2674
  existing transaction is a split, the `category_id` cannot be
2621
2675
  changed. Credit Card Payment categories are not permitted and will
@@ -2623,21 +2677,20 @@ components:
2623
2677
  format: uuid
2624
2678
  memo:
2625
2679
  maxLength: 500
2626
- type: string
2627
- nullable: true
2680
+ type:
2681
+ - string
2682
+ - "null"
2628
2683
  cleared:
2629
2684
  $ref: "#/components/schemas/TransactionClearedStatus"
2630
2685
  approved:
2631
2686
  type: boolean
2632
- description: >-
2633
- Whether or not the transaction is approved. If not supplied,
2687
+ description: Whether or not the transaction is approved. If not supplied,
2634
2688
  transaction will be unapproved by default.
2635
2689
  flag_color:
2636
2690
  $ref: "#/components/schemas/TransactionFlagColor"
2637
2691
  subtransactions:
2638
2692
  type: array
2639
- description: >-
2640
- An array of subtransactions to configure a transaction as a split.
2693
+ description: An array of subtransactions to configure a transaction as a split.
2641
2694
  Updating `subtransactions` on an existing split transaction is not
2642
2695
  supported.
2643
2696
  items:
@@ -2652,31 +2705,33 @@ components:
2652
2705
  description: The subtransaction amount in milliunits format.
2653
2706
  format: int64
2654
2707
  payee_id:
2655
- type: string
2656
- nullable: true
2708
+ type:
2709
+ - string
2710
+ - "null"
2657
2711
  description: The payee for the subtransaction.
2658
2712
  format: uuid
2659
2713
  payee_name:
2660
2714
  maxLength: 200
2661
- type: string
2662
- nullable: true
2663
- description: >-
2664
- The payee name. If a `payee_name` value is provided and `payee_id`
2715
+ type:
2716
+ - string
2717
+ - "null"
2718
+ description: The payee name. If a `payee_name` value is provided and `payee_id`
2665
2719
  has a null value, the `payee_name` value will be used to resolve the
2666
2720
  payee by either (1) a matching payee rename rule (only if import_id
2667
2721
  is also specified on parent transaction) or (2) a payee with the
2668
2722
  same name or (3) creation of a new payee.
2669
2723
  category_id:
2670
- type: string
2671
- nullable: true
2672
- description: >-
2673
- The category for the subtransaction. Credit Card Payment categories
2674
- are not permitted and will be ignored if supplied.
2724
+ type:
2725
+ - string
2726
+ - "null"
2727
+ description: The category for the subtransaction. Credit Card Payment
2728
+ categories are not permitted and will be ignored if supplied.
2675
2729
  format: uuid
2676
2730
  memo:
2677
2731
  maxLength: 500
2678
- type: string
2679
- nullable: true
2732
+ type:
2733
+ - string
2734
+ - "null"
2680
2735
  SaveTransactionsResponse:
2681
2736
  required:
2682
2737
  - data
@@ -2697,17 +2752,15 @@ components:
2697
2752
  $ref: "#/components/schemas/TransactionDetail"
2698
2753
  transactions:
2699
2754
  type: array
2700
- description: >-
2701
- If multiple transactions were specified, the transactions that
2702
- were saved
2755
+ description: If multiple transactions were specified, the transactions that were
2756
+ saved
2703
2757
  items:
2704
2758
  $ref: "#/components/schemas/TransactionDetail"
2705
2759
  duplicate_import_ids:
2706
2760
  type: array
2707
- description: >-
2708
- If multiple transactions were specified, a list of import_ids
2709
- that were not created because of an existing `import_id` found
2710
- on the same account
2761
+ description: If multiple transactions were specified, a list of import_ids that
2762
+ were not created because of an existing `import_id` found on the
2763
+ same account
2711
2764
  items:
2712
2765
  type: string
2713
2766
  server_knowledge:
@@ -2753,8 +2806,9 @@ components:
2753
2806
  description: The transaction amount in milliunits format
2754
2807
  format: int64
2755
2808
  memo:
2756
- type: string
2757
- nullable: true
2809
+ type:
2810
+ - string
2811
+ - "null"
2758
2812
  cleared:
2759
2813
  $ref: "#/components/schemas/TransactionClearedStatus"
2760
2814
  approved:
@@ -2768,57 +2822,63 @@ components:
2768
2822
  type: string
2769
2823
  format: uuid
2770
2824
  payee_id:
2771
- type: string
2772
- nullable: true
2825
+ type:
2826
+ - string
2827
+ - "null"
2773
2828
  format: uuid
2774
2829
  category_id:
2775
- type: string
2776
- nullable: true
2830
+ type:
2831
+ - string
2832
+ - "null"
2777
2833
  format: uuid
2778
2834
  transfer_account_id:
2779
- type: string
2780
- nullable: true
2835
+ type:
2836
+ - string
2837
+ - "null"
2781
2838
  description: If a transfer transaction, the account to which it transfers
2782
2839
  format: uuid
2783
2840
  transfer_transaction_id:
2784
- type: string
2785
- nullable: true
2786
- description: >-
2787
- If a transfer transaction, the id of transaction on the other side
2841
+ type:
2842
+ - string
2843
+ - "null"
2844
+ description: If a transfer transaction, the id of transaction on the other side
2788
2845
  of the transfer
2789
2846
  matched_transaction_id:
2790
- type: string
2791
- nullable: true
2847
+ type:
2848
+ - string
2849
+ - "null"
2792
2850
  description: If transaction is matched, the id of the matched transaction
2793
2851
  import_id:
2794
- type: string
2795
- nullable: true
2796
- description: >-
2797
- If the transaction was imported, this field is a unique (by account)
2798
- import identifier. If this transaction was imported through File
2799
- Based Import or Direct Import and not through the API, the import_id
2800
- will have the format:
2852
+ type:
2853
+ - string
2854
+ - "null"
2855
+ description: "If the transaction was imported, this field is a unique (by
2856
+ account) import identifier. If this transaction was imported
2857
+ through File Based Import or Direct Import and not through the API,
2858
+ the import_id will have the format:
2801
2859
  'YNAB:[milliunit_amount]:[iso_date]:[occurrence]'. For example, a
2802
2860
  transaction dated 2015-12-30 in the amount of -$294.23 USD would
2803
2861
  have an import_id of 'YNAB:-294230:2015-12-30:1'. If a second
2804
2862
  transaction on the same account was imported and had the same date
2805
- and same amount, its import_id would be 'YNAB:-294230:2015-12-30:2'.
2863
+ and same amount, its import_id would be
2864
+ 'YNAB:-294230:2015-12-30:2'."
2806
2865
  import_payee_name:
2807
- type: string
2808
- nullable: true
2809
- description: >-
2810
- If the transaction was imported, the payee name that was used when
2866
+ type:
2867
+ - string
2868
+ - "null"
2869
+ description: If the transaction was imported, the payee name that was used when
2811
2870
  importing and before applying any payee rename rules
2812
2871
  import_payee_name_original:
2813
- type: string
2814
- nullable: true
2815
- description: >-
2816
- If the transaction was imported, the original payee name as it
2872
+ type:
2873
+ - string
2874
+ - "null"
2875
+ description: If the transaction was imported, the original payee name as it
2817
2876
  appeared on the statement
2818
2877
  debt_transaction_type:
2819
- type: string
2820
- description: >-
2821
- If the transaction is a debt/loan account transaction, the type of
2878
+ type:
2879
+ - string
2880
+ - "null"
2881
+ description: If the transaction is a debt/loan account transaction, the type of
2822
2882
  transaction
2823
2883
  enum:
2824
2884
  - payment
@@ -2830,11 +2890,9 @@ components:
2830
2890
  - credit
2831
2891
  - charge
2832
2892
  - null
2833
- nullable: true
2834
2893
  deleted:
2835
2894
  type: boolean
2836
- description: >-
2837
- Whether or not the transaction has been deleted. Deleted
2895
+ description: Whether or not the transaction has been deleted. Deleted
2838
2896
  transactions will only be included in delta requests.
2839
2897
  TransactionDetail:
2840
2898
  allOf:
@@ -2847,13 +2905,14 @@ components:
2847
2905
  account_name:
2848
2906
  type: string
2849
2907
  payee_name:
2850
- type: string
2851
- nullable: true
2908
+ type:
2909
+ - string
2910
+ - "null"
2852
2911
  category_name:
2853
- type: string
2854
- nullable: true
2855
- description: >-
2856
- The name of the category. If a split transaction, this will be
2912
+ type:
2913
+ - string
2914
+ - "null"
2915
+ description: The name of the category. If a split transaction, this will be
2857
2916
  'Split'.
2858
2917
  subtransactions:
2859
2918
  type: array
@@ -2870,28 +2929,27 @@ components:
2870
2929
  properties:
2871
2930
  type:
2872
2931
  type: string
2873
- description: >-
2874
- Whether the hybrid transaction represents a regular transaction
2875
- or a subtransaction
2932
+ description: Whether the hybrid transaction represents a regular transaction or
2933
+ a subtransaction
2876
2934
  enum:
2877
2935
  - transaction
2878
2936
  - subtransaction
2879
2937
  parent_transaction_id:
2880
- type: string
2881
- nullable: true
2882
- description: >-
2883
- For subtransaction types, this is the id of the parent
2938
+ type:
2939
+ - string
2940
+ - "null"
2941
+ description: For subtransaction types, this is the id of the parent
2884
2942
  transaction. For transaction types, this id will be always be
2885
2943
  null.
2886
2944
  account_name:
2887
2945
  type: string
2888
2946
  payee_name:
2889
- type: string
2890
- nullable: true
2947
+ type:
2948
+ - string
2949
+ - "null"
2891
2950
  category_name:
2892
2951
  type: string
2893
- description: >-
2894
- The name of the category. If a split transaction, this will be
2952
+ description: The name of the category. If a split transaction, this will be
2895
2953
  'Split'.
2896
2954
  PatchPayeeWrapper:
2897
2955
  required:
@@ -2908,30 +2966,83 @@ components:
2908
2966
  nullable: false
2909
2967
  maxLength: 500
2910
2968
  description: The name of the payee. The name must be a maximum of 500 characters.
2969
+ PostCategoryGroupWrapper:
2970
+ required:
2971
+ - category_group
2972
+ type: object
2973
+ properties:
2974
+ category_group:
2975
+ $ref: "#/components/schemas/SaveCategoryGroup"
2976
+ PatchCategoryGroupWrapper:
2977
+ required:
2978
+ - category_group
2979
+ type: object
2980
+ properties:
2981
+ category_group:
2982
+ $ref: "#/components/schemas/SaveCategoryGroup"
2983
+ SaveCategoryGroup:
2984
+ required:
2985
+ - name
2986
+ type: object
2987
+ properties:
2988
+ name:
2989
+ type: string
2990
+ description: The name of the category group. The name must be a maximum of 50
2991
+ characters.
2992
+ maxLength: 50
2993
+ PostCategoryWrapper:
2994
+ required:
2995
+ - category
2996
+ type: object
2997
+ properties:
2998
+ category:
2999
+ $ref: "#/components/schemas/NewCategory"
2911
3000
  PatchCategoryWrapper:
2912
3001
  required:
2913
3002
  - category
2914
3003
  type: object
2915
3004
  properties:
2916
3005
  category:
2917
- $ref: "#/components/schemas/SaveCategory"
3006
+ $ref: "#/components/schemas/ExistingCategory"
2918
3007
  SaveCategory:
2919
3008
  type: object
2920
3009
  properties:
2921
3010
  name:
2922
- type: string
2923
- nullable: true
3011
+ type:
3012
+ - string
3013
+ - "null"
2924
3014
  note:
2925
- type: string
2926
- nullable: true
3015
+ type:
3016
+ - string
3017
+ - "null"
2927
3018
  category_group_id:
2928
3019
  type: string
2929
3020
  format: uuid
2930
3021
  goal_target:
2931
- type: integer
2932
- description: The goal target amount in milliunits format. This amount can only be changed if the category already has a configured goal (goal_type != null).
3022
+ type:
3023
+ - integer
3024
+ - "null"
3025
+ description: The goal target amount in milliunits format. If value is specified
3026
+ and goal has not already been configured for category, a monthly
3027
+ 'Needed for Spending' goal will be created for the category with
3028
+ this target amount.
2933
3029
  format: int64
2934
- nullable: true
3030
+ goal_target_date:
3031
+ type:
3032
+ - string
3033
+ - "null"
3034
+ description: The goal target date in ISO format (e.g. 2016-12-01).
3035
+ format: date
3036
+ ExistingCategory:
3037
+ allOf:
3038
+ - $ref: "#/components/schemas/SaveCategory"
3039
+ - type: object
3040
+ NewCategory:
3041
+ allOf:
3042
+ - $ref: "#/components/schemas/SaveCategory"
3043
+ - required:
3044
+ - name
3045
+ - category_group_id
2935
3046
  PatchMonthCategoryWrapper:
2936
3047
  required:
2937
3048
  - category
@@ -2946,7 +3057,7 @@ components:
2946
3057
  properties:
2947
3058
  budgeted:
2948
3059
  type: integer
2949
- description: Budgeted amount in milliunits format
3060
+ description: Assigned (budgeted) amount in milliunits format
2950
3061
  format: int64
2951
3062
  TransactionsImportResponse:
2952
3063
  required:
@@ -2986,8 +3097,7 @@ components:
2986
3097
  type: string
2987
3098
  duplicate_import_ids:
2988
3099
  type: array
2989
- description: >-
2990
- If any Transactions were not created because they had an
3100
+ description: If any Transactions were not created because they had an
2991
3101
  `import_id` matching a transaction already on the same
2992
3102
  account, the specified import_id(s) will be included in this
2993
3103
  list.
@@ -3019,37 +3129,42 @@ components:
3019
3129
  description: The subtransaction amount in milliunits format
3020
3130
  format: int64
3021
3131
  memo:
3022
- type: string
3023
- nullable: true
3132
+ type:
3133
+ - string
3134
+ - "null"
3024
3135
  payee_id:
3025
- type: string
3136
+ type:
3137
+ - string
3138
+ - "null"
3026
3139
  format: uuid
3027
- nullable: true
3028
3140
  payee_name:
3029
- type: string
3030
- nullable: true
3141
+ type:
3142
+ - string
3143
+ - "null"
3031
3144
  category_id:
3032
- type: string
3033
- nullable: true
3145
+ type:
3146
+ - string
3147
+ - "null"
3034
3148
  format: uuid
3035
3149
  category_name:
3036
- type: string
3037
- nullable: true
3150
+ type:
3151
+ - string
3152
+ - "null"
3038
3153
  transfer_account_id:
3039
- type: string
3040
- nullable: true
3154
+ type:
3155
+ - string
3156
+ - "null"
3041
3157
  description: If a transfer, the account_id which the subtransaction transfers to
3042
3158
  format: uuid
3043
3159
  transfer_transaction_id:
3044
- type: string
3045
- nullable: true
3046
- description: >-
3047
- If a transfer, the id of transaction on the other side of the
3160
+ type:
3161
+ - string
3162
+ - "null"
3163
+ description: If a transfer, the id of transaction on the other side of the
3048
3164
  transfer
3049
3165
  deleted:
3050
3166
  type: boolean
3051
- description: >-
3052
- Whether or not the subtransaction has been deleted. Deleted
3167
+ description: Whether or not the subtransaction has been deleted. Deleted
3053
3168
  subtransactions will only be included in delta requests.
3054
3169
  ScheduledTransactionsResponse:
3055
3170
  required:
@@ -3107,42 +3222,45 @@ components:
3107
3222
  format: uuid
3108
3223
  date:
3109
3224
  type: string
3110
- description: >-
3111
- The scheduled transaction date in ISO format (e.g. 2016-12-01). This should be a future date no more than 5 years into the future.
3225
+ description: The scheduled transaction date in ISO format (e.g.
3226
+ 2016-12-01). This should be a future date no more than 5 years into
3227
+ the future.
3112
3228
  format: date
3113
3229
  amount:
3114
3230
  type: integer
3115
- description: >-
3116
- The scheduled transaction amount in milliunits format.
3231
+ description: The scheduled transaction amount in milliunits format.
3117
3232
  format: int64
3118
3233
  payee_id:
3119
- type: string
3120
- nullable: true
3121
- description: >-
3122
- The payee for the scheduled transaction. To create a transfer between two
3123
- accounts, use the account transfer payee pointing to the target
3124
- account. Account transfer payees are specified as
3234
+ type:
3235
+ - string
3236
+ - "null"
3237
+ description: The payee for the scheduled transaction. To create a transfer
3238
+ between two accounts, use the account transfer payee pointing to the
3239
+ target account. Account transfer payees are specified as
3125
3240
  `transfer_payee_id` on the account resource.
3126
3241
  format: uuid
3127
3242
  payee_name:
3128
3243
  maxLength: 200
3129
- type: string
3130
- nullable: true
3131
- description: >-
3132
- The payee name for the the scheduled transaction. If a `payee_name` value is provided and `payee_id`
3133
- has a null value, the `payee_name` value will be used to resolve the
3134
- payee by either (1) a payee with the same name or (2) creation of a new payee.
3244
+ type:
3245
+ - string
3246
+ - "null"
3247
+ description: The payee name for the the scheduled transaction. If a
3248
+ `payee_name` value is provided and `payee_id` has a null value, the
3249
+ `payee_name` value will be used to resolve the payee by either (1) a
3250
+ payee with the same name or (2) creation of a new payee.
3135
3251
  category_id:
3136
- type: string
3137
- nullable: true
3138
- description: >-
3139
- The category for the scheduled transaction. Credit Card Payment categories are not permitted.
3140
- Creating a split scheduled transaction is not currently supported.
3252
+ type:
3253
+ - string
3254
+ - "null"
3255
+ description: The category for the scheduled transaction. Credit Card Payment
3256
+ categories are not permitted. Creating a split scheduled transaction
3257
+ is not currently supported.
3141
3258
  format: uuid
3142
3259
  memo:
3143
3260
  maxLength: 500
3144
- type: string
3145
- nullable: true
3261
+ type:
3262
+ - string
3263
+ - "null"
3146
3264
  flag_color:
3147
3265
  $ref: "#/components/schemas/TransactionFlagColor"
3148
3266
  frequency:
@@ -3190,8 +3308,9 @@ components:
3190
3308
  description: The scheduled transaction amount in milliunits format
3191
3309
  format: int64
3192
3310
  memo:
3193
- type: string
3194
- nullable: true
3311
+ type:
3312
+ - string
3313
+ - "null"
3195
3314
  flag_color:
3196
3315
  $ref: "#/components/schemas/TransactionFlagColor"
3197
3316
  flag_name:
@@ -3200,24 +3319,25 @@ components:
3200
3319
  type: string
3201
3320
  format: uuid
3202
3321
  payee_id:
3203
- type: string
3204
- nullable: true
3322
+ type:
3323
+ - string
3324
+ - "null"
3205
3325
  format: uuid
3206
3326
  category_id:
3207
- type: string
3208
- nullable: true
3327
+ type:
3328
+ - string
3329
+ - "null"
3209
3330
  format: uuid
3210
3331
  transfer_account_id:
3211
- type: string
3212
- nullable: true
3213
- description: >-
3214
- If a transfer, the account_id which the scheduled transaction
3332
+ type:
3333
+ - string
3334
+ - "null"
3335
+ description: If a transfer, the account_id which the scheduled transaction
3215
3336
  transfers to
3216
3337
  format: uuid
3217
3338
  deleted:
3218
3339
  type: boolean
3219
- description: >-
3220
- Whether or not the scheduled transaction has been deleted. Deleted
3340
+ description: Whether or not the scheduled transaction has been deleted. Deleted
3221
3341
  scheduled transactions will only be included in delta requests.
3222
3342
  ScheduledTransactionDetail:
3223
3343
  allOf:
@@ -3230,14 +3350,15 @@ components:
3230
3350
  account_name:
3231
3351
  type: string
3232
3352
  payee_name:
3233
- type: string
3234
- nullable: true
3353
+ type:
3354
+ - string
3355
+ - "null"
3235
3356
  category_name:
3236
- type: string
3237
- nullable: true
3238
- description: >-
3239
- The name of the category. If a split scheduled transaction,
3240
- this will be 'Split'.
3357
+ type:
3358
+ - string
3359
+ - "null"
3360
+ description: The name of the category. If a split scheduled transaction, this
3361
+ will be 'Split'.
3241
3362
  subtransactions:
3242
3363
  type: array
3243
3364
  description: If a split scheduled transaction, the subtransactions.
@@ -3262,33 +3383,37 @@ components:
3262
3383
  description: The scheduled subtransaction amount in milliunits format
3263
3384
  format: int64
3264
3385
  memo:
3265
- type: string
3266
- nullable: true
3386
+ type:
3387
+ - string
3388
+ - "null"
3267
3389
  payee_id:
3268
- type: string
3269
- nullable: true
3390
+ type:
3391
+ - string
3392
+ - "null"
3270
3393
  format: uuid
3271
3394
  payee_name:
3272
- type: string
3273
- nullable: true
3395
+ type:
3396
+ - string
3397
+ - "null"
3274
3398
  category_id:
3275
- type: string
3276
- nullable: true
3399
+ type:
3400
+ - string
3401
+ - "null"
3277
3402
  format: uuid
3278
3403
  category_name:
3279
- type: string
3280
- nullable: true
3404
+ type:
3405
+ - string
3406
+ - "null"
3281
3407
  transfer_account_id:
3282
- type: string
3283
- nullable: true
3284
- description: >-
3285
- If a transfer, the account_id which the scheduled subtransaction
3408
+ type:
3409
+ - string
3410
+ - "null"
3411
+ description: If a transfer, the account_id which the scheduled subtransaction
3286
3412
  transfers to
3287
3413
  format: uuid
3288
3414
  deleted:
3289
3415
  type: boolean
3290
- description: >-
3291
- Whether or not the scheduled subtransaction has been deleted.
3416
+ description: Whether or not the scheduled subtransaction has been deleted.
3292
3417
  Deleted scheduled subtransactions will only be included in delta
3293
3418
  requests.
3294
3419
  MonthSummariesResponse:
@@ -3336,38 +3461,37 @@ components:
3336
3461
  type: string
3337
3462
  format: date
3338
3463
  note:
3339
- type: string
3340
- nullable: true
3464
+ type:
3465
+ - string
3466
+ - "null"
3341
3467
  income:
3342
3468
  type: integer
3343
- description: >-
3344
- The total amount of transactions categorized to 'Inflow: Ready to
3345
- Assign' in the month
3469
+ description: "The total amount of transactions categorized to 'Inflow: Ready to
3470
+ Assign' in the month"
3346
3471
  format: int64
3347
3472
  budgeted:
3348
3473
  type: integer
3349
- description: The total amount budgeted in the month
3474
+ description: The total amount assigned (budgeted) in the month
3350
3475
  format: int64
3351
3476
  activity:
3352
3477
  type: integer
3353
- description: >-
3354
- The total amount of transactions in the month, excluding those
3355
- categorized to 'Inflow: Ready to Assign'
3478
+ description: "The total amount of transactions in the month, excluding those
3479
+ categorized to 'Inflow: Ready to Assign'"
3356
3480
  format: int64
3357
3481
  to_be_budgeted:
3358
3482
  type: integer
3359
3483
  description: The available amount for 'Ready to Assign'
3360
3484
  format: int64
3361
3485
  age_of_money:
3362
- type: integer
3486
+ type:
3487
+ - integer
3488
+ - "null"
3363
3489
  description: The Age of Money as of the month
3364
3490
  format: int32
3365
- nullable: true
3366
3491
  deleted:
3367
3492
  type: boolean
3368
- description: >-
3369
- Whether or not the month has been deleted. Deleted months will only
3370
- be included in delta requests.
3493
+ description: Whether or not the month has been deleted. Deleted months will
3494
+ only be included in delta requests.
3371
3495
  MonthDetail:
3372
3496
  allOf:
3373
3497
  - $ref: "#/components/schemas/MonthSummary"
@@ -3377,13 +3501,14 @@ components:
3377
3501
  properties:
3378
3502
  categories:
3379
3503
  type: array
3380
- description: >-
3381
- The budget month categories. Amounts (budgeted, activity,
3382
- balance, etc.) are specific to the {month} parameter specified.
3504
+ description: The plan month categories. Amounts (budgeted, activity, balance,
3505
+ etc.) are specific to the {month} parameter specified.
3383
3506
  items:
3384
3507
  $ref: "#/components/schemas/Category"
3385
3508
  TransactionFlagColor:
3386
- type: string
3509
+ type:
3510
+ - string
3511
+ - "null"
3387
3512
  description: The transaction flag
3388
3513
  enum:
3389
3514
  - red
@@ -3394,11 +3519,11 @@ components:
3394
3519
  - purple
3395
3520
  - ""
3396
3521
  - null
3397
- nullable: true
3398
3522
  TransactionFlagName:
3399
- type: string
3523
+ type:
3524
+ - string
3525
+ - "null"
3400
3526
  description: The customized name of a transaction flag
3401
- nullable: true
3402
3527
  TransactionClearedStatus:
3403
3528
  type: string
3404
3529
  description: The cleared status of the transaction
@@ -3423,6 +3548,126 @@ components:
3423
3548
  - twiceAYear
3424
3549
  - yearly
3425
3550
  - everyOtherYear
3551
+ MoneyMovementsResponse:
3552
+ required:
3553
+ - data
3554
+ type: object
3555
+ properties:
3556
+ data:
3557
+ required:
3558
+ - money_movements
3559
+ - server_knowledge
3560
+ type: object
3561
+ properties:
3562
+ money_movements:
3563
+ type: array
3564
+ items:
3565
+ $ref: "#/components/schemas/MoneyMovement"
3566
+ server_knowledge:
3567
+ type: integer
3568
+ description: The knowledge of the server
3569
+ format: int64
3570
+ MoneyMovement:
3571
+ required:
3572
+ - id
3573
+ - amount
3574
+ type: object
3575
+ properties:
3576
+ id:
3577
+ type: string
3578
+ format: uuid
3579
+ month:
3580
+ type:
3581
+ - string
3582
+ - "null"
3583
+ description: The month of the money movement in ISO format (e.g. 2024-01-01)
3584
+ format: date
3585
+ moved_at:
3586
+ type:
3587
+ - string
3588
+ - "null"
3589
+ description: The date/time the money movement was processed on the server in ISO
3590
+ format (e.g. 2024-01-01T12:00:00Z)
3591
+ format: date-time
3592
+ note:
3593
+ type:
3594
+ - string
3595
+ - "null"
3596
+ money_movement_group_id:
3597
+ type:
3598
+ - string
3599
+ - "null"
3600
+ description: The id of the money movement group this movement belongs to
3601
+ format: uuid
3602
+ performed_by_user_id:
3603
+ type:
3604
+ - string
3605
+ - "null"
3606
+ description: The id of the user who performed the money movement
3607
+ format: uuid
3608
+ from_category_id:
3609
+ type:
3610
+ - string
3611
+ - "null"
3612
+ description: The id of the category the money was moved from
3613
+ format: uuid
3614
+ to_category_id:
3615
+ type:
3616
+ - string
3617
+ - "null"
3618
+ description: The id of the category the money was moved to
3619
+ format: uuid
3620
+ amount:
3621
+ type: integer
3622
+ description: The amount of the money movement in milliunits format
3623
+ format: int64
3624
+ MoneyMovementGroupsResponse:
3625
+ required:
3626
+ - data
3627
+ type: object
3628
+ properties:
3629
+ data:
3630
+ required:
3631
+ - money_movement_groups
3632
+ - server_knowledge
3633
+ type: object
3634
+ properties:
3635
+ money_movement_groups:
3636
+ type: array
3637
+ items:
3638
+ $ref: "#/components/schemas/MoneyMovementGroup"
3639
+ server_knowledge:
3640
+ type: integer
3641
+ description: The knowledge of the server
3642
+ format: int64
3643
+ MoneyMovementGroup:
3644
+ required:
3645
+ - id
3646
+ - group_created_at
3647
+ - month
3648
+ type: object
3649
+ properties:
3650
+ id:
3651
+ type: string
3652
+ format: uuid
3653
+ group_created_at:
3654
+ type: string
3655
+ description: When the money movement group was created
3656
+ format: date-time
3657
+ month:
3658
+ type: string
3659
+ description: The month of the money movement group in ISO format (e.g. 2024-01-01)
3660
+ format: date
3661
+ note:
3662
+ type:
3663
+ - string
3664
+ - "null"
3665
+ performed_by_user_id:
3666
+ type:
3667
+ - string
3668
+ - "null"
3669
+ description: The id of the user who performed the money movement group
3670
+ format: uuid
3426
3671
  securitySchemes:
3427
3672
  bearer:
3428
3673
  type: http