ynab 1.4.0 → 1.5.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (57) hide show
  1. checksums.yaml +5 -5
  2. data/Gemfile.lock +2 -2
  3. data/README.md +37 -27
  4. data/Rakefile +0 -6
  5. data/config.json +1 -1
  6. data/docs/Account.md +1 -0
  7. data/docs/AccountsApi.md +3 -3
  8. data/docs/BudgetsApi.md +4 -4
  9. data/docs/CategoriesApi.md +45 -4
  10. data/docs/HybridTransaction.md +2 -1
  11. data/docs/MonthDetail.md +1 -1
  12. data/docs/MonthsApi.md +3 -3
  13. data/docs/PayeeLocationsApi.md +4 -4
  14. data/docs/PayeesApi.md +3 -3
  15. data/docs/SaveMonthCategory.md +8 -0
  16. data/docs/SaveMonthCategoryWrapper.md +8 -0
  17. data/docs/SaveTransaction.md +2 -2
  18. data/docs/SaveTransactionsResponse.md +8 -0
  19. data/docs/SaveTransactionsResponseData.md +11 -0
  20. data/docs/SaveTransactionsWrapper.md +9 -0
  21. data/docs/ScheduledTransactionsApi.md +3 -3
  22. data/docs/TransactionDetail.md +2 -1
  23. data/docs/TransactionSummary.md +2 -1
  24. data/docs/TransactionsApi.md +25 -25
  25. data/docs/UserApi.md +1 -1
  26. data/examples/create-multiple-transactions.rb +44 -0
  27. data/examples/update-category-budgeted.rb +23 -0
  28. data/lib/ynab.rb +5 -0
  29. data/lib/ynab/api/accounts_api.rb +6 -6
  30. data/lib/ynab/api/budgets_api.rb +8 -8
  31. data/lib/ynab/api/categories_api.rb +142 -8
  32. data/lib/ynab/api/months_api.rb +6 -6
  33. data/lib/ynab/api/payee_locations_api.rb +8 -8
  34. data/lib/ynab/api/payees_api.rb +6 -6
  35. data/lib/ynab/api/scheduled_transactions_api.rb +6 -6
  36. data/lib/ynab/api/transactions_api.rb +54 -54
  37. data/lib/ynab/api/user_api.rb +2 -2
  38. data/lib/ynab/models/account.rb +16 -1
  39. data/lib/ynab/models/hybrid_transaction.rb +17 -1
  40. data/lib/ynab/models/month_detail.rb +1 -1
  41. data/lib/ynab/models/save_month_category.rb +189 -0
  42. data/lib/ynab/models/save_month_category_wrapper.rb +188 -0
  43. data/lib/ynab/models/save_transaction.rb +2 -2
  44. data/lib/ynab/models/save_transactions_response.rb +188 -0
  45. data/lib/ynab/models/save_transactions_response_data.rb +225 -0
  46. data/lib/ynab/models/save_transactions_wrapper.rb +194 -0
  47. data/lib/ynab/models/transaction_detail.rb +17 -1
  48. data/lib/ynab/models/transaction_summary.rb +17 -1
  49. data/lib/ynab/version.rb +1 -1
  50. data/pkg/ynab-1.4.0.gem +0 -0
  51. data/spec-v1-swagger.json +413 -245
  52. data/spec/api/categories_spec.rb +14 -2
  53. data/spec/api/transactions_spec.rb +31 -0
  54. data/spec/fixtures/vcr_cassettes/category.yml +1 -1
  55. data/spec/fixtures/vcr_cassettes/multiple_transactions.yml +46 -0
  56. data/spec/fixtures/vcr_cassettes/patch_month_category.yml +46 -0
  57. metadata +20 -3
@@ -38,8 +38,12 @@ module YNAB
38
38
 
39
39
  attr_accessor :category_id
40
40
 
41
+ # If a transfer transaction, the account to which it transfers
41
42
  attr_accessor :transfer_account_id
42
43
 
44
+ # If a transfer transaction, the id of transaction on the other side of the transfer
45
+ attr_accessor :transfer_transaction_id
46
+
43
47
  # If the Transaction was imported, this field is a unique (by account) import identifier. If this transaction was imported through File Based Import or Direct Import and not through the API, the import_id will have the format: 'YNAB:[milliunit_amount]:[iso_date]:[occurrence]'. For example, a transaction dated 2015-12-30 in the amount of -$294.23 USD would have an import_id of 'YNAB:-294230:2015-12-30:1'. If a second transaction on the same account was imported and had the same date and same amount, its import_id would be 'YNAB:-294230:2015-12-30:2'.
44
48
  attr_accessor :import_id
45
49
 
@@ -91,6 +95,7 @@ module YNAB
91
95
  :'payee_id' => :'payee_id',
92
96
  :'category_id' => :'category_id',
93
97
  :'transfer_account_id' => :'transfer_account_id',
98
+ :'transfer_transaction_id' => :'transfer_transaction_id',
94
99
  :'import_id' => :'import_id',
95
100
  :'deleted' => :'deleted',
96
101
  :'account_name' => :'account_name',
@@ -114,6 +119,7 @@ module YNAB
114
119
  :'payee_id' => :'String',
115
120
  :'category_id' => :'String',
116
121
  :'transfer_account_id' => :'String',
122
+ :'transfer_transaction_id' => :'String',
117
123
  :'import_id' => :'String',
118
124
  :'deleted' => :'BOOLEAN',
119
125
  :'account_name' => :'String',
@@ -175,6 +181,10 @@ module YNAB
175
181
  self.transfer_account_id = attributes[:'transfer_account_id']
176
182
  end
177
183
 
184
+ if attributes.has_key?(:'transfer_transaction_id')
185
+ self.transfer_transaction_id = attributes[:'transfer_transaction_id']
186
+ end
187
+
178
188
  if attributes.has_key?(:'import_id')
179
189
  self.import_id = attributes[:'import_id']
180
190
  end
@@ -250,6 +260,10 @@ module YNAB
250
260
  invalid_properties.push('invalid value for "transfer_account_id", transfer_account_id cannot be nil.')
251
261
  end
252
262
 
263
+ if @transfer_transaction_id.nil?
264
+ invalid_properties.push('invalid value for "transfer_transaction_id", transfer_transaction_id cannot be nil.')
265
+ end
266
+
253
267
  if @import_id.nil?
254
268
  invalid_properties.push('invalid value for "import_id", import_id cannot be nil.')
255
269
  end
@@ -295,6 +309,7 @@ module YNAB
295
309
  return false if @payee_id.nil?
296
310
  return false if @category_id.nil?
297
311
  return false if @transfer_account_id.nil?
312
+ return false if @transfer_transaction_id.nil?
298
313
  return false if @import_id.nil?
299
314
  return false if @deleted.nil?
300
315
  return false if @account_name.nil?
@@ -340,6 +355,7 @@ module YNAB
340
355
  payee_id == o.payee_id &&
341
356
  category_id == o.category_id &&
342
357
  transfer_account_id == o.transfer_account_id &&
358
+ transfer_transaction_id == o.transfer_transaction_id &&
343
359
  import_id == o.import_id &&
344
360
  deleted == o.deleted &&
345
361
  account_name == o.account_name &&
@@ -357,7 +373,7 @@ module YNAB
357
373
  # Calculates hash code according to all attributes.
358
374
  # @return [Fixnum] Hash code
359
375
  def hash
360
- [id, date, amount, memo, cleared, approved, flag_color, account_id, payee_id, category_id, transfer_account_id, import_id, deleted, account_name, payee_name, category_name, subtransactions].hash
376
+ [id, date, amount, memo, cleared, approved, flag_color, account_id, payee_id, category_id, transfer_account_id, transfer_transaction_id, import_id, deleted, account_name, payee_name, category_name, subtransactions].hash
361
377
  end
362
378
 
363
379
  # Builds the object from hash
@@ -38,8 +38,12 @@ module YNAB
38
38
 
39
39
  attr_accessor :category_id
40
40
 
41
+ # If a transfer transaction, the account to which it transfers
41
42
  attr_accessor :transfer_account_id
42
43
 
44
+ # If a transfer transaction, the id of transaction on the other side of the transfer
45
+ attr_accessor :transfer_transaction_id
46
+
43
47
  # If the Transaction was imported, this field is a unique (by account) import identifier. If this transaction was imported through File Based Import or Direct Import and not through the API, the import_id will have the format: 'YNAB:[milliunit_amount]:[iso_date]:[occurrence]'. For example, a transaction dated 2015-12-30 in the amount of -$294.23 USD would have an import_id of 'YNAB:-294230:2015-12-30:1'. If a second transaction on the same account was imported and had the same date and same amount, its import_id would be 'YNAB:-294230:2015-12-30:2'.
44
48
  attr_accessor :import_id
45
49
 
@@ -82,6 +86,7 @@ module YNAB
82
86
  :'payee_id' => :'payee_id',
83
87
  :'category_id' => :'category_id',
84
88
  :'transfer_account_id' => :'transfer_account_id',
89
+ :'transfer_transaction_id' => :'transfer_transaction_id',
85
90
  :'import_id' => :'import_id',
86
91
  :'deleted' => :'deleted'
87
92
  }
@@ -101,6 +106,7 @@ module YNAB
101
106
  :'payee_id' => :'String',
102
107
  :'category_id' => :'String',
103
108
  :'transfer_account_id' => :'String',
109
+ :'transfer_transaction_id' => :'String',
104
110
  :'import_id' => :'String',
105
111
  :'deleted' => :'BOOLEAN'
106
112
  }
@@ -158,6 +164,10 @@ module YNAB
158
164
  self.transfer_account_id = attributes[:'transfer_account_id']
159
165
  end
160
166
 
167
+ if attributes.has_key?(:'transfer_transaction_id')
168
+ self.transfer_transaction_id = attributes[:'transfer_transaction_id']
169
+ end
170
+
161
171
  if attributes.has_key?(:'import_id')
162
172
  self.import_id = attributes[:'import_id']
163
173
  end
@@ -215,6 +225,10 @@ module YNAB
215
225
  invalid_properties.push('invalid value for "transfer_account_id", transfer_account_id cannot be nil.')
216
226
  end
217
227
 
228
+ if @transfer_transaction_id.nil?
229
+ invalid_properties.push('invalid value for "transfer_transaction_id", transfer_transaction_id cannot be nil.')
230
+ end
231
+
218
232
  if @import_id.nil?
219
233
  invalid_properties.push('invalid value for "import_id", import_id cannot be nil.')
220
234
  end
@@ -244,6 +258,7 @@ module YNAB
244
258
  return false if @payee_id.nil?
245
259
  return false if @category_id.nil?
246
260
  return false if @transfer_account_id.nil?
261
+ return false if @transfer_transaction_id.nil?
247
262
  return false if @import_id.nil?
248
263
  return false if @deleted.nil?
249
264
  true
@@ -285,6 +300,7 @@ module YNAB
285
300
  payee_id == o.payee_id &&
286
301
  category_id == o.category_id &&
287
302
  transfer_account_id == o.transfer_account_id &&
303
+ transfer_transaction_id == o.transfer_transaction_id &&
288
304
  import_id == o.import_id &&
289
305
  deleted == o.deleted
290
306
  end
@@ -298,7 +314,7 @@ module YNAB
298
314
  # Calculates hash code according to all attributes.
299
315
  # @return [Fixnum] Hash code
300
316
  def hash
301
- [id, date, amount, memo, cleared, approved, flag_color, account_id, payee_id, category_id, transfer_account_id, import_id, deleted].hash
317
+ [id, date, amount, memo, cleared, approved, flag_color, account_id, payee_id, category_id, transfer_account_id, transfer_transaction_id, import_id, deleted].hash
302
318
  end
303
319
 
304
320
  # Builds the object from hash
data/lib/ynab/version.rb CHANGED
@@ -11,5 +11,5 @@ Swagger Codegen version: 2.4.0-SNAPSHOT
11
11
  =end
12
12
 
13
13
  module YNAB
14
- VERSION = '1.4.0'
14
+ VERSION = '1.5.0'
15
15
  end
Binary file
data/spec-v1-swagger.json CHANGED
@@ -1,8 +1,7 @@
1
1
  {
2
2
  "swagger": "2.0",
3
3
  "info": {
4
- "description":
5
- "Our API uses a REST based design, leverages the JSON data format, and relies upon HTTPS for transport. We respond with meaningful HTTP response codes and if an error occurs, we include error details in the response body. API Documentation is at https://api.youneedabudget.com",
4
+ "description": "Our API uses a REST based design, leverages the JSON data format, and relies upon HTTPS for transport. We respond with meaningful HTTP response codes and if an error occurs, we include error details in the response body. API Documentation is at https://api.youneedabudget.com",
6
5
  "version": "1.0.0",
7
6
  "title": "YNAB API Endpoints"
8
7
  },
@@ -18,33 +17,31 @@
18
17
  },
19
18
  {
20
19
  "name": "Accounts",
21
- "description": "The Accounts for a budget."
20
+ "description": "The accounts for a budget"
22
21
  },
23
22
  {
24
23
  "name": "Categories",
25
- "description": "The Categories for a budget."
24
+ "description": "The categories for a budget"
26
25
  },
27
26
  {
28
27
  "name": "Payees",
29
- "description": "The Payees for a budget."
28
+ "description": "The payees for a budget"
30
29
  },
31
30
  {
32
31
  "name": "Payee Locations",
33
- "description":
34
- "When you enter a transaction and specify a payee on the YNAB mobile apps, the GPS coordinates for that location are stored, with your permission, so that the next time you are in the same place (like the Grocery store) we can pre-populate nearby payees for you! It’s handy and saves you time. This resource makes these locations available. Locations will not be available for all payees."
32
+ "description": "When you enter a transaction and specify a payee on the YNAB mobile apps, the GPS coordinates for that location are stored, with your permission, so that the next time you are in the same place (like the Grocery store) we can pre-populate nearby payees for you! It’s handy and saves you time. This resource makes these locations available. Locations will not be available for all payees."
35
33
  },
36
34
  {
37
35
  "name": "Months",
38
- "description":
39
- "Each budget contains one or more months, which is where To be Budgeted, Age of Money and Category (budgeted / activity / balances) amounts are available."
36
+ "description": "Each budget contains one or more months, which is where To be Budgeted, Age of Money and category (budgeted / activity / balances) amounts are available."
40
37
  },
41
38
  {
42
39
  "name": "Transactions",
43
- "description": "The Transactions for a budget."
40
+ "description": "The transactions for a budget"
44
41
  },
45
42
  {
46
43
  "name": "Scheduled Transactions",
47
- "description": "The Scheduled Transactions for a budget."
44
+ "description": "The scheduled transactions for a budget"
48
45
  }
49
46
  ],
50
47
  "security": [
@@ -57,18 +54,18 @@
57
54
  "get": {
58
55
  "tags": ["User"],
59
56
  "summary": "User info",
60
- "description": "Returns authenticated user information.",
57
+ "description": "Returns authenticated user information",
61
58
  "operationId": "getUser",
62
59
  "produces": ["application/json"],
63
60
  "responses": {
64
61
  "200": {
65
- "description": "The user info.",
62
+ "description": "The user info",
66
63
  "schema": {
67
64
  "$ref": "#/definitions/UserResponse"
68
65
  }
69
66
  },
70
67
  "default": {
71
- "description": "An error occurred.",
68
+ "description": "An error occurred",
72
69
  "schema": {
73
70
  "$ref": "#/definitions/ErrorResponse"
74
71
  }
@@ -80,25 +77,25 @@
80
77
  "get": {
81
78
  "tags": ["Budgets"],
82
79
  "summary": "List budgets",
83
- "description": "Returns budgets list with summary information.",
80
+ "description": "Returns budgets list with summary information",
84
81
  "operationId": "getBudgets",
85
82
  "produces": ["application/json"],
86
83
  "parameters": [],
87
84
  "responses": {
88
85
  "200": {
89
- "description": "The list of budgets.",
86
+ "description": "The list of budgets",
90
87
  "schema": {
91
88
  "$ref": "#/definitions/BudgetSummaryResponse"
92
89
  }
93
90
  },
94
91
  "404": {
95
- "description": "No budgets were found.",
92
+ "description": "No budgets were found",
96
93
  "schema": {
97
94
  "$ref": "#/definitions/ErrorResponse"
98
95
  }
99
96
  },
100
97
  "default": {
101
- "description": "An error occurred.",
98
+ "description": "An error occurred",
102
99
  "schema": {
103
100
  "$ref": "#/definitions/ErrorResponse"
104
101
  }
@@ -110,15 +107,14 @@
110
107
  "get": {
111
108
  "tags": ["Budgets"],
112
109
  "summary": "Single budget",
113
- "description":
114
- "Returns a single budget with all related entities. This resource is effectively a full budget export.",
110
+ "description": "Returns a single budget with all related entities. This resource is effectively a full budget export.",
115
111
  "operationId": "getBudgetById",
116
112
  "produces": ["application/json"],
117
113
  "parameters": [
118
114
  {
119
115
  "name": "budget_id",
120
116
  "in": "path",
121
- "description": "The ID of the Budget. \"last-used\" can also be used to specify the last used budget.",
117
+ "description": "The id of the budget (\"last-used\" can also be used to specify the last used budget)",
122
118
  "required": true,
123
119
  "type": "string",
124
120
  "format": "uuid"
@@ -126,27 +122,26 @@
126
122
  {
127
123
  "name": "last_knowledge_of_server",
128
124
  "in": "query",
129
- "description":
130
- "The starting server knowledge. If provided, only entities that have changed since last_knowledge_of_server will be included.",
125
+ "description": "The starting server knowledge. If provided, only entities that have changed since last_knowledge_of_server will be included.",
131
126
  "required": false,
132
127
  "type": "integer"
133
128
  }
134
129
  ],
135
130
  "responses": {
136
131
  "200": {
137
- "description": "The requested Budget.",
132
+ "description": "The requested budget",
138
133
  "schema": {
139
134
  "$ref": "#/definitions/BudgetDetailResponse"
140
135
  }
141
136
  },
142
137
  "404": {
143
- "description": "The specified Budget was not found.",
138
+ "description": "The specified budget was not found",
144
139
  "schema": {
145
140
  "$ref": "#/definitions/ErrorResponse"
146
141
  }
147
142
  },
148
143
  "default": {
149
- "description": "An error occurred.",
144
+ "description": "An error occurred",
150
145
  "schema": {
151
146
  "$ref": "#/definitions/ErrorResponse"
152
147
  }
@@ -158,15 +153,14 @@
158
153
  "get": {
159
154
  "tags": ["Budgets"],
160
155
  "summary": "Budget Settings",
161
- "description":
162
- "Returns settings for a budget.",
156
+ "description": "Returns settings for a budget",
163
157
  "operationId": "getBudgetSettingsById",
164
158
  "produces": ["application/json"],
165
159
  "parameters": [
166
160
  {
167
161
  "name": "budget_id",
168
162
  "in": "path",
169
- "description": "The ID of the Budget. \"last-used\" can also be used to specify the last used budget.",
163
+ "description": "The id of the budget (\"last-used\" can also be used to specify the last used budget)",
170
164
  "required": true,
171
165
  "type": "string",
172
166
  "format": "uuid"
@@ -174,19 +168,19 @@
174
168
  ],
175
169
  "responses": {
176
170
  "200": {
177
- "description": "The requested Budget Settings.",
171
+ "description": "The requested budget settings",
178
172
  "schema": {
179
173
  "$ref": "#/definitions/BudgetSettingsResponse"
180
174
  }
181
175
  },
182
176
  "404": {
183
- "description": "The specified Budget was not found.",
177
+ "description": "The specified Budget was not found",
184
178
  "schema": {
185
179
  "$ref": "#/definitions/ErrorResponse"
186
180
  }
187
181
  },
188
182
  "default": {
189
- "description": "An error occurred.",
183
+ "description": "An error occurred",
190
184
  "schema": {
191
185
  "$ref": "#/definitions/ErrorResponse"
192
186
  }
@@ -205,7 +199,7 @@
205
199
  {
206
200
  "name": "budget_id",
207
201
  "in": "path",
208
- "description": "The ID of the Budget. \"last-used\" can also be used to specify the last used budget.",
202
+ "description": "The id of the budget (\"last-used\" can also be used to specify the last used budget)",
209
203
  "required": true,
210
204
  "type": "string",
211
205
  "format": "uuid"
@@ -213,19 +207,19 @@
213
207
  ],
214
208
  "responses": {
215
209
  "200": {
216
- "description": "The list of requested Accounts.",
210
+ "description": "The list of requested accounts",
217
211
  "schema": {
218
212
  "$ref": "#/definitions/AccountsResponse"
219
213
  }
220
214
  },
221
215
  "404": {
222
- "description": "No Accounts were found.",
216
+ "description": "No nccounts were found",
223
217
  "schema": {
224
218
  "$ref": "#/definitions/ErrorResponse"
225
219
  }
226
220
  },
227
221
  "default": {
228
- "description": "An error occurred.",
222
+ "description": "An error occurred",
229
223
  "schema": {
230
224
  "$ref": "#/definitions/ErrorResponse"
231
225
  }
@@ -244,7 +238,7 @@
244
238
  {
245
239
  "name": "budget_id",
246
240
  "in": "path",
247
- "description": "The ID of the Budget. \"last-used\" can also be used to specify the last used budget.",
241
+ "description": "The id of the budget (\"last-used\" can also be used to specify the last used budget)",
248
242
  "required": true,
249
243
  "type": "string",
250
244
  "format": "uuid"
@@ -252,7 +246,7 @@
252
246
  {
253
247
  "name": "account_id",
254
248
  "in": "path",
255
- "description": "The ID of the Account.",
249
+ "description": "The id of the account",
256
250
  "required": true,
257
251
  "type": "string",
258
252
  "format": "uuid"
@@ -260,19 +254,19 @@
260
254
  ],
261
255
  "responses": {
262
256
  "200": {
263
- "description": "The requested Account.",
257
+ "description": "The requested account",
264
258
  "schema": {
265
259
  "$ref": "#/definitions/AccountResponse"
266
260
  }
267
261
  },
268
262
  "404": {
269
- "description": "The requested Account was not found.",
263
+ "description": "The requested account was not found",
270
264
  "schema": {
271
265
  "$ref": "#/definitions/ErrorResponse"
272
266
  }
273
267
  },
274
268
  "default": {
275
- "description": "An error occurred.",
269
+ "description": "An error occurred",
276
270
  "schema": {
277
271
  "$ref": "#/definitions/ErrorResponse"
278
272
  }
@@ -284,14 +278,14 @@
284
278
  "get": {
285
279
  "tags": ["Categories"],
286
280
  "summary": "List categories",
287
- "description": "Returns all categories grouped by category group.",
281
+ "description": "Returns all categories grouped by category group",
288
282
  "operationId": "getCategories",
289
283
  "produces": ["application/json"],
290
284
  "parameters": [
291
285
  {
292
286
  "name": "budget_id",
293
287
  "in": "path",
294
- "description": "The ID of the Budget. \"last-used\" can also be used to specify the last used budget.",
288
+ "description": "The id of the budget (\"last-used\" can also be used to specify the last used budget)",
295
289
  "required": true,
296
290
  "type": "string",
297
291
  "format": "uuid"
@@ -299,19 +293,19 @@
299
293
  ],
300
294
  "responses": {
301
295
  "200": {
302
- "description": "The Categories grouped by Category Group.",
296
+ "description": "The categories grouped by category group",
303
297
  "schema": {
304
298
  "$ref": "#/definitions/CategoriesResponse"
305
299
  }
306
300
  },
307
301
  "404": {
308
- "description": "No categories were found.",
302
+ "description": "No categories were found",
309
303
  "schema": {
310
304
  "$ref": "#/definitions/ErrorResponse"
311
305
  }
312
306
  },
313
307
  "default": {
314
- "description": "An error occurred.",
308
+ "description": "An error occurred",
315
309
  "schema": {
316
310
  "$ref": "#/definitions/ErrorResponse"
317
311
  }
@@ -330,7 +324,7 @@
330
324
  {
331
325
  "name": "budget_id",
332
326
  "in": "path",
333
- "description": "The ID of the Budget. \"last-used\" can also be used to specify the last used budget.",
327
+ "description": "The id of the budget (\"last-used\" can also be used to specify the last used budget)",
334
328
  "required": true,
335
329
  "type": "string",
336
330
  "format": "uuid"
@@ -338,7 +332,7 @@
338
332
  {
339
333
  "name": "category_id",
340
334
  "in": "path",
341
- "description": "The ID of the Category.",
335
+ "description": "The id of the category",
342
336
  "required": true,
343
337
  "type": "string",
344
338
  "format": "uuid"
@@ -346,19 +340,130 @@
346
340
  ],
347
341
  "responses": {
348
342
  "200": {
349
- "description": "The requested Category.",
343
+ "description": "The requested category",
350
344
  "schema": {
351
345
  "$ref": "#/definitions/CategoryResponse"
352
346
  }
353
347
  },
354
348
  "404": {
355
- "description": "The Category not was found.",
349
+ "description": "The category not was found",
356
350
  "schema": {
357
351
  "$ref": "#/definitions/ErrorResponse"
358
352
  }
359
353
  },
360
354
  "default": {
361
- "description": "An error occurred.",
355
+ "description": "An error occurred",
356
+ "schema": {
357
+ "$ref": "#/definitions/ErrorResponse"
358
+ }
359
+ }
360
+ }
361
+ }
362
+ },
363
+ "/budgets/{budget_id}/months/{month}/categories/{category_id}": {
364
+ "get": {
365
+ "tags": ["Categories"],
366
+ "summary": "Single category for a specific budget month",
367
+ "description": "Returns a single category for a specific budget month",
368
+ "operationId": "getMonthCategoryById",
369
+ "produces": ["application/json"],
370
+ "parameters": [
371
+ {
372
+ "name": "budget_id",
373
+ "in": "path",
374
+ "description": "The id of the budget (\"last-used\" can also be used to specify the last used budget)",
375
+ "required": true,
376
+ "type": "string",
377
+ "format": "uuid"
378
+ },
379
+ {
380
+ "name": "month",
381
+ "in": "path",
382
+ "description": "the budget month in ISO format (e.g. 2016-12-30). (\"current\" can also be used to specify the current calendar month (UTC))",
383
+ "required": true,
384
+ "type": "string",
385
+ "format": "date"
386
+ },
387
+ {
388
+ "name": "category_id",
389
+ "in": "path",
390
+ "description": "The id of the category",
391
+ "required": true,
392
+ "type": "string",
393
+ "format": "uuid"
394
+ }
395
+ ],
396
+ "responses": {
397
+ "200": {
398
+ "description": "The requested month category",
399
+ "schema": {
400
+ "$ref": "#/definitions/CategoryResponse"
401
+ }
402
+ },
403
+ "404": {
404
+ "description": "The month category was not was found",
405
+ "schema": {
406
+ "$ref": "#/definitions/ErrorResponse"
407
+ }
408
+ },
409
+ "default": {
410
+ "description": "An error occurred",
411
+ "schema": {
412
+ "$ref": "#/definitions/ErrorResponse"
413
+ }
414
+ }
415
+ }
416
+ },
417
+ "patch": {
418
+ "tags": ["Categories"],
419
+ "summary": "Update an existing month category",
420
+ "description": "Update an existing month category",
421
+ "operationId": "updateMonthCategory",
422
+ "produces": ["application/json"],
423
+ "parameters": [
424
+ {
425
+ "name": "budget_id",
426
+ "in": "path",
427
+ "description": "The id of the budget (\"last-used\" can also be used to specify the last used budget)",
428
+ "required": true,
429
+ "type": "string",
430
+ "format": "uuid"
431
+ },
432
+ {
433
+ "name": "month",
434
+ "in": "path",
435
+ "description": "the budget month in ISO format (e.g. 2016-12-01). \"current\" can also be used to specify the current calendar month (UTC).",
436
+ "required": true,
437
+ "type": "string",
438
+ "format": "date"
439
+ },
440
+ {
441
+ "name": "category_id",
442
+ "in": "path",
443
+ "description": "The id of the category",
444
+ "required": true,
445
+ "type": "string",
446
+ "format": "uuid"
447
+ },
448
+ {
449
+ "name": "month_category",
450
+ "in": "body",
451
+ "description": "The month category to update",
452
+ "required": true,
453
+ "schema": {
454
+ "$ref": "#/definitions/SaveMonthCategoryWrapper"
455
+ }
456
+ }
457
+ ],
458
+ "responses": {
459
+ "200": {
460
+ "description": "The month category was successfully updated",
461
+ "schema": {
462
+ "$ref": "#/definitions/CategoryResponse"
463
+ }
464
+ },
465
+ "400": {
466
+ "description": "The request could not be understood due to malformed syntax or validation error(s)",
362
467
  "schema": {
363
468
  "$ref": "#/definitions/ErrorResponse"
364
469
  }
@@ -377,7 +482,7 @@
377
482
  {
378
483
  "name": "budget_id",
379
484
  "in": "path",
380
- "description": "The ID of the Budget. \"last-used\" can also be used to specify the last used budget.",
485
+ "description": "The id of the budget (\"last-used\" can also be used to specify the last used budget)",
381
486
  "required": true,
382
487
  "type": "string",
383
488
  "format": "uuid"
@@ -385,19 +490,19 @@
385
490
  ],
386
491
  "responses": {
387
492
  "200": {
388
- "description": "The requested list of Payees.",
493
+ "description": "The requested list of payees",
389
494
  "schema": {
390
495
  "$ref": "#/definitions/PayeesResponse"
391
496
  }
392
497
  },
393
498
  "404": {
394
- "description": "No Payees were found.",
499
+ "description": "No payees were found",
395
500
  "schema": {
396
501
  "$ref": "#/definitions/ErrorResponse"
397
502
  }
398
503
  },
399
504
  "default": {
400
- "description": "An error occurred.",
505
+ "description": "An error occurred",
401
506
  "schema": {
402
507
  "$ref": "#/definitions/ErrorResponse"
403
508
  }
@@ -416,7 +521,7 @@
416
521
  {
417
522
  "name": "budget_id",
418
523
  "in": "path",
419
- "description": "The ID of the Budget. \"last-used\" can also be used to specify the last used budget.",
524
+ "description": "The id of the budget (\"last-used\" can also be used to specify the last used budget)",
420
525
  "required": true,
421
526
  "type": "string",
422
527
  "format": "uuid"
@@ -424,7 +529,7 @@
424
529
  {
425
530
  "name": "payee_id",
426
531
  "in": "path",
427
- "description": "The ID of the Payee.",
532
+ "description": "The id of the payee",
428
533
  "required": true,
429
534
  "type": "string",
430
535
  "format": "uuid"
@@ -432,19 +537,19 @@
432
537
  ],
433
538
  "responses": {
434
539
  "200": {
435
- "description": "The requested Payee.",
540
+ "description": "The requested payee",
436
541
  "schema": {
437
542
  "$ref": "#/definitions/PayeeResponse"
438
543
  }
439
544
  },
440
545
  "404": {
441
- "description": "The Payee was not found.",
546
+ "description": "The payee was not found",
442
547
  "schema": {
443
548
  "$ref": "#/definitions/ErrorResponse"
444
549
  }
445
550
  },
446
551
  "default": {
447
- "description": "An error occurred.",
552
+ "description": "An error occurred",
448
553
  "schema": {
449
554
  "$ref": "#/definitions/ErrorResponse"
450
555
  }
@@ -463,7 +568,7 @@
463
568
  {
464
569
  "name": "budget_id",
465
570
  "in": "path",
466
- "description": "The ID of the Budget. \"last-used\" can also be used to specify the last used budget.",
571
+ "description": "The id of the budget (\"last-used\" can also be used to specify the last used budget)",
467
572
  "required": true,
468
573
  "type": "string",
469
574
  "format": "uuid"
@@ -471,19 +576,19 @@
471
576
  ],
472
577
  "responses": {
473
578
  "200": {
474
- "description": "The list of Payee Locations.",
579
+ "description": "The list of payee locations",
475
580
  "schema": {
476
581
  "$ref": "#/definitions/PayeeLocationsResponse"
477
582
  }
478
583
  },
479
584
  "404": {
480
- "description": "No Payees Locations were found.",
585
+ "description": "No payees locations were found",
481
586
  "schema": {
482
587
  "$ref": "#/definitions/ErrorResponse"
483
588
  }
484
589
  },
485
590
  "default": {
486
- "description": "An error occurred.",
591
+ "description": "An error occurred",
487
592
  "schema": {
488
593
  "$ref": "#/definitions/ErrorResponse"
489
594
  }
@@ -502,7 +607,7 @@
502
607
  {
503
608
  "name": "budget_id",
504
609
  "in": "path",
505
- "description": "The ID of the Budget. \"last-used\" can also be used to specify the last used budget.",
610
+ "description": "The id of the budget (\"last-used\" can also be used to specify the last used budget)",
506
611
  "required": true,
507
612
  "type": "string",
508
613
  "format": "uuid"
@@ -518,19 +623,19 @@
518
623
  ],
519
624
  "responses": {
520
625
  "200": {
521
- "description": "Payee Location",
626
+ "description": "The payee location",
522
627
  "schema": {
523
628
  "$ref": "#/definitions/PayeeLocationResponse"
524
629
  }
525
630
  },
526
631
  "404": {
527
- "description": "Payee location not found",
632
+ "description": "The payee location was not found",
528
633
  "schema": {
529
634
  "$ref": "#/definitions/ErrorResponse"
530
635
  }
531
636
  },
532
637
  "default": {
533
- "description": "An error occurred.",
638
+ "description": "An error occurred",
534
639
  "schema": {
535
640
  "$ref": "#/definitions/ErrorResponse"
536
641
  }
@@ -549,7 +654,7 @@
549
654
  {
550
655
  "name": "budget_id",
551
656
  "in": "path",
552
- "description": "The ID of the Budget. \"last-used\" can also be used to specify the last used budget.",
657
+ "description": "The id of the budget (\"last-used\" can also be used to specify the last used budget)",
553
658
  "required": true,
554
659
  "type": "string",
555
660
  "format": "uuid"
@@ -557,7 +662,7 @@
557
662
  {
558
663
  "name": "payee_id",
559
664
  "in": "path",
560
- "description": "ID of payee",
665
+ "description": "id of payee",
561
666
  "required": true,
562
667
  "type": "string",
563
668
  "format": "uuid"
@@ -565,19 +670,19 @@
565
670
  ],
566
671
  "responses": {
567
672
  "200": {
568
- "description": "The list of requested Payee Locations.",
673
+ "description": "The list of requested payee locations",
569
674
  "schema": {
570
675
  "$ref": "#/definitions/PayeeLocationsResponse"
571
676
  }
572
677
  },
573
678
  "404": {
574
- "description": "No Payees Locations were found.",
679
+ "description": "No payees locations were found",
575
680
  "schema": {
576
681
  "$ref": "#/definitions/ErrorResponse"
577
682
  }
578
683
  },
579
684
  "default": {
580
- "description": "An error occurred.",
685
+ "description": "An error occurred",
581
686
  "schema": {
582
687
  "$ref": "#/definitions/ErrorResponse"
583
688
  }
@@ -596,7 +701,7 @@
596
701
  {
597
702
  "name": "budget_id",
598
703
  "in": "path",
599
- "description": "The ID of the Budget. \"last-used\" can also be used to specify the last used budget.",
704
+ "description": "The id of the budget (\"last-used\" can also be used to specify the last used budget)",
600
705
  "required": true,
601
706
  "type": "string",
602
707
  "format": "uuid"
@@ -604,19 +709,19 @@
604
709
  ],
605
710
  "responses": {
606
711
  "200": {
607
- "description": "The list of Budget Months.",
712
+ "description": "The list of budget months",
608
713
  "schema": {
609
714
  "$ref": "#/definitions/MonthSummariesResponse"
610
715
  }
611
716
  },
612
717
  "404": {
613
- "description": "No Budget Months were found.",
718
+ "description": "No budget months were found",
614
719
  "schema": {
615
720
  "$ref": "#/definitions/ErrorResponse"
616
721
  }
617
722
  },
618
723
  "default": {
619
- "description": "An error occurred.",
724
+ "description": "An error occurred",
620
725
  "schema": {
621
726
  "$ref": "#/definitions/ErrorResponse"
622
727
  }
@@ -635,7 +740,7 @@
635
740
  {
636
741
  "name": "budget_id",
637
742
  "in": "path",
638
- "description": "The ID of the Budget. \"last-used\" can also be used to specify the last used budget.",
743
+ "description": "The id of the budget (\"last-used\" can also be used to specify the last used budget)",
639
744
  "required": true,
640
745
  "type": "string",
641
746
  "format": "uuid"
@@ -643,8 +748,7 @@
643
748
  {
644
749
  "name": "month",
645
750
  "in": "path",
646
- "description":
647
- "The Budget Month in ISO format (e.g. 2016-12-01). \"current\" can also be used to specify the current calendar month (UTC).",
751
+ "description": "the budget month in ISO format (e.g. 2016-12-01). \"current\" can also be used to specify the current calendar month (UTC).",
648
752
  "required": true,
649
753
  "type": "string",
650
754
  "format": "date"
@@ -652,19 +756,19 @@
652
756
  ],
653
757
  "responses": {
654
758
  "200": {
655
- "description": "The Budget Month detail.",
759
+ "description": "The budget month detail",
656
760
  "schema": {
657
761
  "$ref": "#/definitions/MonthDetailResponse"
658
762
  }
659
763
  },
660
764
  "404": {
661
- "description": "The Budget Month was not found.",
765
+ "description": "The budget month was not found",
662
766
  "schema": {
663
767
  "$ref": "#/definitions/ErrorResponse"
664
768
  }
665
769
  },
666
770
  "default": {
667
- "description": "An error occurred.",
771
+ "description": "An error occurred",
668
772
  "schema": {
669
773
  "$ref": "#/definitions/ErrorResponse"
670
774
  }
@@ -683,7 +787,7 @@
683
787
  {
684
788
  "name": "budget_id",
685
789
  "in": "path",
686
- "description": "The ID of the Budget. \"last-used\" can also be used to specify the last used budget.",
790
+ "description": "The id of the budget (\"last-used\" can also be used to specify the last used budget)",
687
791
  "required": true,
688
792
  "type": "string",
689
793
  "format": "uuid"
@@ -691,7 +795,7 @@
691
795
  {
692
796
  "name": "since_date",
693
797
  "in": "query",
694
- "description": "Only return transactions on or after this date.",
798
+ "description": "Only return transactions on or after this date",
695
799
  "required": false,
696
800
  "type": "string",
697
801
  "format": "date"
@@ -699,8 +803,7 @@
699
803
  {
700
804
  "name": "type",
701
805
  "in": "query",
702
- "description":
703
- "Only return transactions of a certain type ('uncategorized' and 'unapproved' are currently supported)",
806
+ "description": "Only return transactions of a certain type ('uncategorized' and 'unapproved' are currently supported)",
704
807
  "required": false,
705
808
  "type": "string",
706
809
  "enum": ["uncategorized", "unapproved"]
@@ -708,19 +811,19 @@
708
811
  ],
709
812
  "responses": {
710
813
  "200": {
711
- "description": "The list of requested Transactions.",
814
+ "description": "The list of requested transactions",
712
815
  "schema": {
713
816
  "$ref": "#/definitions/TransactionsResponse"
714
817
  }
715
818
  },
716
819
  "404": {
717
- "description": "No Transactions were found.",
820
+ "description": "No transactions were found",
718
821
  "schema": {
719
822
  "$ref": "#/definitions/ErrorResponse"
720
823
  }
721
824
  },
722
825
  "400": {
723
- "description": "An error occurred.",
826
+ "description": "An error occurred",
724
827
  "schema": {
725
828
  "$ref": "#/definitions/ErrorResponse"
726
829
  }
@@ -729,34 +832,34 @@
729
832
  },
730
833
  "post": {
731
834
  "tags": ["Transactions"],
732
- "summary": "Create new transaction",
733
- "description": "Creates a transaction",
835
+ "summary": "Create a single transaction or multiple transactions",
836
+ "description": "Creates a single transaction or multiple transactions. If you provide a body containing a 'transaction' object, a single transaction will be created and if you provide a body containing a 'transactions' array, multiple transactions will be created.",
734
837
  "operationId": "createTransaction",
735
838
  "produces": ["application/json"],
736
839
  "parameters": [
737
840
  {
738
841
  "name": "budget_id",
739
842
  "in": "path",
740
- "description": "The ID of the Budget. \"last-used\" can also be used to specify the last used budget.",
843
+ "description": "The id of the budget (\"last-used\" can also be used to specify the last used budget)",
741
844
  "required": true,
742
845
  "type": "string",
743
846
  "format": "uuid"
744
847
  },
745
848
  {
746
- "name": "transaction",
849
+ "name": "save_transactions",
747
850
  "in": "body",
748
- "description": "The Transaction to create.",
851
+ "description": "The transaction or transactions to create",
749
852
  "required": true,
750
853
  "schema": {
751
- "$ref": "#/definitions/SaveTransactionWrapper"
854
+ "$ref": "#/definitions/SaveTransactionsWrapper"
752
855
  }
753
856
  }
754
857
  ],
755
858
  "responses": {
756
859
  "201": {
757
- "description": "The Transaction was successfully created.",
860
+ "description": "The transaction or transactions were successfully created",
758
861
  "schema": {
759
- "$ref": "#/definitions/TransactionResponse"
862
+ "$ref": "#/definitions/SaveTransactionsResponse"
760
863
  }
761
864
  },
762
865
  "400": {
@@ -785,7 +888,7 @@
785
888
  {
786
889
  "name": "budget_id",
787
890
  "in": "path",
788
- "description": "The ID of the Budget. \"last-used\" can also be used to specify the last used budget.",
891
+ "description": "The id of the budget (\"last-used\" can also be used to specify the last used budget)",
789
892
  "required": true,
790
893
  "type": "string",
791
894
  "format": "uuid"
@@ -793,7 +896,7 @@
793
896
  {
794
897
  "name": "transactions",
795
898
  "in": "body",
796
- "description": "The list of Transactions to create.",
899
+ "description": "The list of transactions to create",
797
900
  "required": true,
798
901
  "schema": {
799
902
  "$ref": "#/definitions/BulkTransactions"
@@ -802,13 +905,13 @@
802
905
  ],
803
906
  "responses": {
804
907
  "201": {
805
- "description": "The bulk request was processed sucessfully.",
908
+ "description": "The bulk request was processed sucessfully",
806
909
  "schema": {
807
910
  "$ref": "#/definitions/BulkResponse"
808
911
  }
809
912
  },
810
913
  "400": {
811
- "description": "The request could not be understood due to malformed syntax or validation error(s).",
914
+ "description": "The request could not be understood due to malformed syntax or validation error(s)",
812
915
  "schema": {
813
916
  "$ref": "#/definitions/ErrorResponse"
814
917
  }
@@ -827,7 +930,7 @@
827
930
  {
828
931
  "name": "budget_id",
829
932
  "in": "path",
830
- "description": "The ID of the Budget. \"last-used\" can also be used to specify the last used budget.",
933
+ "description": "The id of the budget (\"last-used\" can also be used to specify the last used budget)",
831
934
  "required": true,
832
935
  "type": "string",
833
936
  "format": "uuid"
@@ -835,7 +938,7 @@
835
938
  {
836
939
  "name": "account_id",
837
940
  "in": "path",
838
- "description": "The ID of the Account.",
941
+ "description": "The id of the account",
839
942
  "required": true,
840
943
  "type": "string",
841
944
  "format": "uuid"
@@ -843,7 +946,7 @@
843
946
  {
844
947
  "name": "since_date",
845
948
  "in": "query",
846
- "description": "Only return transactions on or after this date.",
949
+ "description": "Only return transactions on or after this date",
847
950
  "required": false,
848
951
  "type": "string",
849
952
  "format": "date"
@@ -851,8 +954,7 @@
851
954
  {
852
955
  "name": "type",
853
956
  "in": "query",
854
- "description":
855
- "Only return transactions of a certain type (i.e. 'uncategorized', 'unapproved')",
957
+ "description": "Only return transactions of a certain type (i.e. 'uncategorized', 'unapproved')",
856
958
  "required": false,
857
959
  "type": "string",
858
960
  "enum": ["uncategorized", "unapproved"]
@@ -860,19 +962,19 @@
860
962
  ],
861
963
  "responses": {
862
964
  "200": {
863
- "description": "The list of requested Transactions.",
965
+ "description": "The list of requested transactions",
864
966
  "schema": {
865
967
  "$ref": "#/definitions/TransactionsResponse"
866
968
  }
867
969
  },
868
970
  "404": {
869
- "description": "No Transactions were found",
971
+ "description": "No transactions were found",
870
972
  "schema": {
871
973
  "$ref": "#/definitions/ErrorResponse"
872
974
  }
873
975
  },
874
976
  "default": {
875
- "description": "An error occurred.",
977
+ "description": "An error occurred",
876
978
  "schema": {
877
979
  "$ref": "#/definitions/ErrorResponse"
878
980
  }
@@ -891,7 +993,7 @@
891
993
  {
892
994
  "name": "budget_id",
893
995
  "in": "path",
894
- "description": "The ID of the Budget. \"last-used\" can also be used to specify the last used budget.",
996
+ "description": "The id of the budget (\"last-used\" can also be used to specify the last used budget)",
895
997
  "required": true,
896
998
  "type": "string",
897
999
  "format": "uuid"
@@ -899,7 +1001,7 @@
899
1001
  {
900
1002
  "name": "category_id",
901
1003
  "in": "path",
902
- "description": "The ID of the Category.",
1004
+ "description": "The id of the category",
903
1005
  "required": true,
904
1006
  "type": "string",
905
1007
  "format": "uuid"
@@ -907,7 +1009,7 @@
907
1009
  {
908
1010
  "name": "since_date",
909
1011
  "in": "query",
910
- "description": "Only return transactions on or after this date.",
1012
+ "description": "Only return transactions on or after this date",
911
1013
  "required": false,
912
1014
  "type": "string",
913
1015
  "format": "date"
@@ -915,8 +1017,7 @@
915
1017
  {
916
1018
  "name": "type",
917
1019
  "in": "query",
918
- "description":
919
- "Only return transactions of a certain type (i.e. 'uncategorized', 'unapproved')",
1020
+ "description": "Only return transactions of a certain type (i.e. 'uncategorized', 'unapproved')",
920
1021
  "required": false,
921
1022
  "type": "string",
922
1023
  "enum": ["uncategorized", "unapproved"]
@@ -924,19 +1025,19 @@
924
1025
  ],
925
1026
  "responses": {
926
1027
  "200": {
927
- "description": "The list of requested Transactions.",
1028
+ "description": "The list of requested transactions",
928
1029
  "schema": {
929
1030
  "$ref": "#/definitions/HybridTransactionsResponse"
930
1031
  }
931
1032
  },
932
1033
  "404": {
933
- "description": "No Transactions were found.",
1034
+ "description": "No transactions were found",
934
1035
  "schema": {
935
1036
  "$ref": "#/definitions/ErrorResponse"
936
1037
  }
937
1038
  },
938
1039
  "default": {
939
- "description": "An error occurred.",
1040
+ "description": "An error occurred",
940
1041
  "schema": {
941
1042
  "$ref": "#/definitions/ErrorResponse"
942
1043
  }
@@ -955,7 +1056,7 @@
955
1056
  {
956
1057
  "name": "budget_id",
957
1058
  "in": "path",
958
- "description": "The ID of the Budget. \"last-used\" can also be used to specify the last used budget.",
1059
+ "description": "The id of the budget (\"last-used\" can also be used to specify the last used budget)",
959
1060
  "required": true,
960
1061
  "type": "string",
961
1062
  "format": "uuid"
@@ -963,7 +1064,7 @@
963
1064
  {
964
1065
  "name": "payee_id",
965
1066
  "in": "path",
966
- "description": "The ID of the Payee.",
1067
+ "description": "The id of the payee",
967
1068
  "required": true,
968
1069
  "type": "string",
969
1070
  "format": "uuid"
@@ -971,7 +1072,7 @@
971
1072
  {
972
1073
  "name": "since_date",
973
1074
  "in": "query",
974
- "description": "Only return transactions on or after this date.",
1075
+ "description": "Only return transactions on or after this date",
975
1076
  "required": false,
976
1077
  "type": "string",
977
1078
  "format": "date"
@@ -979,8 +1080,7 @@
979
1080
  {
980
1081
  "name": "type",
981
1082
  "in": "query",
982
- "description":
983
- "Only return transactions of a certain type (i.e. 'uncategorized', 'unapproved')",
1083
+ "description": "Only return transactions of a certain type (i.e. 'uncategorized', 'unapproved')",
984
1084
  "required": false,
985
1085
  "type": "string",
986
1086
  "enum": ["uncategorized", "unapproved"]
@@ -988,19 +1088,19 @@
988
1088
  ],
989
1089
  "responses": {
990
1090
  "200": {
991
- "description": "The list of requested Transactions.",
1091
+ "description": "The list of requested transactions",
992
1092
  "schema": {
993
1093
  "$ref": "#/definitions/HybridTransactionsResponse"
994
1094
  }
995
1095
  },
996
1096
  "404": {
997
- "description": "No Transactions were found.",
1097
+ "description": "No transactions were found",
998
1098
  "schema": {
999
1099
  "$ref": "#/definitions/ErrorResponse"
1000
1100
  }
1001
1101
  },
1002
1102
  "default": {
1003
- "description": "An error occurred.",
1103
+ "description": "An error occurred",
1004
1104
  "schema": {
1005
1105
  "$ref": "#/definitions/ErrorResponse"
1006
1106
  }
@@ -1019,7 +1119,7 @@
1019
1119
  {
1020
1120
  "name": "budget_id",
1021
1121
  "in": "path",
1022
- "description": "The ID of the Budget. \"last-used\" can also be used to specify the last used budget.",
1122
+ "description": "The id of the budget (\"last-used\" can also be used to specify the last used budget)",
1023
1123
  "required": true,
1024
1124
  "type": "string",
1025
1125
  "format": "uuid"
@@ -1027,7 +1127,7 @@
1027
1127
  {
1028
1128
  "name": "transaction_id",
1029
1129
  "in": "path",
1030
- "description": "The ID of the Transaction.",
1130
+ "description": "The id of the transaction",
1031
1131
  "required": true,
1032
1132
  "type": "string",
1033
1133
  "format": "uuid"
@@ -1035,25 +1135,26 @@
1035
1135
  ],
1036
1136
  "responses": {
1037
1137
  "200": {
1038
- "description": "The requested Transaction.",
1138
+ "description": "The requested transaction",
1039
1139
  "schema": {
1040
1140
  "$ref": "#/definitions/TransactionResponse"
1041
1141
  }
1042
1142
  },
1043
1143
  "404": {
1044
- "description": "The Transaction was not found.",
1144
+ "description": "The transaction was not found",
1045
1145
  "schema": {
1046
1146
  "$ref": "#/definitions/ErrorResponse"
1047
1147
  }
1048
1148
  },
1049
1149
  "default": {
1050
- "description": "An error occurred.",
1150
+ "description": "An error occurred",
1051
1151
  "schema": {
1052
1152
  "$ref": "#/definitions/ErrorResponse"
1053
1153
  }
1054
1154
  }
1055
1155
  }
1056
- },
1156
+ }
1157
+ ,
1057
1158
  "put": {
1058
1159
  "tags": ["Transactions"],
1059
1160
  "summary": "Updates an existing transaction",
@@ -1064,7 +1165,7 @@
1064
1165
  {
1065
1166
  "name": "budget_id",
1066
1167
  "in": "path",
1067
- "description": "The ID of the Budget. \"last-used\" can also be used to specify the last used budget.",
1168
+ "description": "The id of the budget (\"last-used\" can also be used to specify the last used budget)",
1068
1169
  "required": true,
1069
1170
  "type": "string",
1070
1171
  "format": "uuid"
@@ -1072,7 +1173,7 @@
1072
1173
  {
1073
1174
  "name": "transaction_id",
1074
1175
  "in": "path",
1075
- "description": "The ID of the Transaction.",
1176
+ "description": "The id of the transaction",
1076
1177
  "required": true,
1077
1178
  "type": "string",
1078
1179
  "format": "uuid"
@@ -1080,7 +1181,7 @@
1080
1181
  {
1081
1182
  "name": "transaction",
1082
1183
  "in": "body",
1083
- "description": "The Transaction to update.",
1184
+ "description": "The transaction to update",
1084
1185
  "required": true,
1085
1186
  "schema": {
1086
1187
  "$ref": "#/definitions/SaveTransactionWrapper"
@@ -1089,13 +1190,13 @@
1089
1190
  ],
1090
1191
  "responses": {
1091
1192
  "200": {
1092
- "description": "The Transaction was successfully updated.",
1193
+ "description": "The transaction was successfully updated",
1093
1194
  "schema": {
1094
1195
  "$ref": "#/definitions/TransactionResponse"
1095
1196
  }
1096
1197
  },
1097
1198
  "400": {
1098
- "description": "The request could not be understood due to malformed syntax or validation error(s).",
1199
+ "description": "The request could not be understood due to malformed syntax or validation error(s)",
1099
1200
  "schema": {
1100
1201
  "$ref": "#/definitions/ErrorResponse"
1101
1202
  }
@@ -1114,7 +1215,7 @@
1114
1215
  {
1115
1216
  "name": "budget_id",
1116
1217
  "in": "path",
1117
- "description": "The ID of the Budget. \"last-used\" can also be used to specify the last used budget.",
1218
+ "description": "The id of the budget (\"last-used\" can also be used to specify the last used budget)",
1118
1219
  "required": true,
1119
1220
  "type": "string",
1120
1221
  "format": "uuid"
@@ -1122,19 +1223,19 @@
1122
1223
  ],
1123
1224
  "responses": {
1124
1225
  "200": {
1125
- "description": "The list of requested Scheduled Transactions.",
1226
+ "description": "The list of requested scheduled transactions",
1126
1227
  "schema": {
1127
1228
  "$ref": "#/definitions/ScheduledTransactionsResponse"
1128
1229
  }
1129
1230
  },
1130
1231
  "404": {
1131
- "description": "No Scheduled Transactions were found.",
1232
+ "description": "No scheduled transactions were found",
1132
1233
  "schema": {
1133
1234
  "$ref": "#/definitions/ErrorResponse"
1134
1235
  }
1135
1236
  },
1136
1237
  "default": {
1137
- "description": "An error occurred.",
1238
+ "description": "An error occurred",
1138
1239
  "schema": {
1139
1240
  "$ref": "#/definitions/ErrorResponse"
1140
1241
  }
@@ -1153,7 +1254,7 @@
1153
1254
  {
1154
1255
  "name": "budget_id",
1155
1256
  "in": "path",
1156
- "description": "The ID of the Budget. \"last-used\" can also be used to specify the last used budget.",
1257
+ "description": "The id of the budget (\"last-used\" can also be used to specify the last used budget)",
1157
1258
  "required": true,
1158
1259
  "type": "string",
1159
1260
  "format": "uuid"
@@ -1161,7 +1262,7 @@
1161
1262
  {
1162
1263
  "name": "scheduled_transaction_id",
1163
1264
  "in": "path",
1164
- "description": "The ID of the Scheduled Transaction.",
1265
+ "description": "The id of the scheduled transaction",
1165
1266
  "required": true,
1166
1267
  "type": "string",
1167
1268
  "format": "uuid"
@@ -1169,19 +1270,19 @@
1169
1270
  ],
1170
1271
  "responses": {
1171
1272
  "200": {
1172
- "description": "The requested Scheduled Transaction.",
1273
+ "description": "The requested Scheduled Transaction",
1173
1274
  "schema": {
1174
1275
  "$ref": "#/definitions/ScheduledTransactionResponse"
1175
1276
  }
1176
1277
  },
1177
1278
  "404": {
1178
- "description": "The Scheduled Transaction was not found.",
1279
+ "description": "The scheduled transaction was not found",
1179
1280
  "schema": {
1180
1281
  "$ref": "#/definitions/ErrorResponse"
1181
1282
  }
1182
1283
  },
1183
1284
  "default": {
1184
- "description": "An error occurred.",
1285
+ "description": "An error occurred",
1185
1286
  "schema": {
1186
1287
  "$ref": "#/definitions/ErrorResponse"
1187
1288
  }
@@ -1373,8 +1474,7 @@
1373
1474
  "last_modified_on": {
1374
1475
  "type": "string",
1375
1476
  "format": "date-time",
1376
- "description":
1377
- "The last time any changes were made to the budget from either a web or mobile client."
1477
+ "description": "The last time any changes were made to the budget from either a web or mobile client."
1378
1478
  },
1379
1479
  "date_format": {
1380
1480
  "$ref": "#/definitions/DateFormat"
@@ -1519,6 +1619,7 @@
1519
1619
  "balance",
1520
1620
  "cleared_balance",
1521
1621
  "uncleared_balance",
1622
+ "transfer_payee_id",
1522
1623
  "deleted"
1523
1624
  ],
1524
1625
  "properties": {
@@ -1560,20 +1661,23 @@
1560
1661
  "balance": {
1561
1662
  "type": "integer",
1562
1663
  "format": "1234000",
1563
- "description":
1564
- "The current balance of the account in milliunits format"
1664
+ "description": "The current balance of the account in milliunits format"
1565
1665
  },
1566
1666
  "cleared_balance": {
1567
1667
  "type": "integer",
1568
1668
  "format": "1234000",
1569
- "description":
1570
- "The current cleared balance of the account in milliunits format"
1669
+ "description": "The current cleared balance of the account in milliunits format"
1571
1670
  },
1572
1671
  "uncleared_balance": {
1573
1672
  "type": "integer",
1574
1673
  "format": "1234000",
1674
+ "description": "The current uncleared balance of the account in milliunits format"
1675
+ },
1676
+ "transfer_payee_id": {
1677
+ "type": "string",
1678
+ "format": "uuid",
1575
1679
  "description":
1576
- "The current uncleared balance of the account in milliunits format"
1680
+ "The payee id which should be used when transferring to this account"
1577
1681
  },
1578
1682
  "deleted": {
1579
1683
  "type": "boolean",
@@ -1795,8 +1899,7 @@
1795
1899
  "type": "string"
1796
1900
  },
1797
1901
  "transfer_account_id": {
1798
- "description":
1799
- "If a transfer payee, the account_id to which this payee transfers to",
1902
+ "description": "If a transfer payee, the account_id to which this payee transfers to",
1800
1903
  "type": "string"
1801
1904
  },
1802
1905
  "deleted": {
@@ -1910,6 +2013,120 @@
1910
2013
  }
1911
2014
  }
1912
2015
  },
2016
+ "SaveTransactionWrapper": {
2017
+ "type": "object",
2018
+ "required": ["transaction"],
2019
+ "properties": {
2020
+ "transaction": {
2021
+ "$ref": "#/definitions/SaveTransaction"
2022
+ }
2023
+ }
2024
+ },
2025
+ "SaveTransactionsWrapper": {
2026
+ "type": "object",
2027
+ "properties": {
2028
+ "transaction": {
2029
+ "$ref": "#/definitions/SaveTransaction"
2030
+ },
2031
+ "transactions": {
2032
+ "type": "array",
2033
+ "items": {
2034
+ "$ref": "#/definitions/SaveTransaction"
2035
+ }
2036
+ }
2037
+ }
2038
+ },
2039
+ "SaveTransaction": {
2040
+ "type": "object",
2041
+ "required": ["account_id", "date", "amount"],
2042
+ "properties": {
2043
+ "account_id": {
2044
+ "type": "string",
2045
+ "format": "uuid"
2046
+ },
2047
+ "date": {
2048
+ "type": "string",
2049
+ "format": "date"
2050
+ },
2051
+ "amount": {
2052
+ "type": "integer",
2053
+ "format": "1234000",
2054
+ "description": "The transaction amount in milliunits format"
2055
+ },
2056
+ "payee_id": {
2057
+ "type": "string",
2058
+ "format": "uuid",
2059
+ "description": "The payee for the transaction"
2060
+ },
2061
+ "payee_name": {
2062
+ "type": "string",
2063
+ "description": "The payee name. If a payee_name value is provided and payee_id has a null value, the payee_name value will be used to resolve the payee by either (1) a matching payee rename rule (only if import_id is also specified) or (2) a payee with the same name or (3) creation of a new payee."
2064
+ },
2065
+ "category_id": {
2066
+ "type": "string",
2067
+ "format": "uuid",
2068
+ "description": "The category for the transaction. Split and Credit Card Payment categories are not permitted and will be ignored if supplied. If an existing transaction has a Split category it cannot be changed."
2069
+ },
2070
+ "memo": {
2071
+ "type": "string"
2072
+ },
2073
+ "cleared": {
2074
+ "type": "string",
2075
+ "enum": ["cleared", "uncleared", "reconciled"],
2076
+ "description": "The cleared status of the transaction"
2077
+ },
2078
+ "approved": {
2079
+ "type": "boolean",
2080
+ "description": "Whether or not the transaction is approved. If not supplied, transaction will be unapproved by default."
2081
+ },
2082
+ "flag_color": {
2083
+ "type": "string",
2084
+ "enum": ["red", "orange", "yellow", "green", "blue", "purple", null],
2085
+ "description": "The transaction flag"
2086
+ },
2087
+ "import_id": {
2088
+ "type": "string",
2089
+ "description": "If specified for a new transaction, the transaction will be treated as Imported and assigned this import_id. If another transaction on the same account with this same import_id is later attempted to be created, it will be skipped to prevent duplication. Transactions imported through File Based Import or Direct Import and not through the API, are assigned an import_id in the format: 'YNAB:[milliunit_amount]:[iso_date]:[occurrence]'. For example, a transaction dated 2015-12-30 in the amount of -$294.23 USD would have an import_id of 'YNAB:-294230:2015-12-30:1'. If a second transaction on the same account was imported and had the same date and same amount, its import_id would be 'YNAB:-294230:2015-12-30:2'. Using a consistent format will prevent duplicates through Direct Import and File Based Import. If import_id is specified as null, the transaction will be treated as a user entered transaction."
2090
+ }
2091
+ }
2092
+ },
2093
+ "SaveTransactionsResponse": {
2094
+ "type": "object",
2095
+ "required": ["data"],
2096
+ "properties": {
2097
+ "data": {
2098
+ "type": "object",
2099
+ "required": ["transaction_ids"],
2100
+ "properties": {
2101
+ "transaction_ids": {
2102
+ "type": "array",
2103
+ "description": "The transaction ids that were saved",
2104
+ "items": {
2105
+ "type": "string"
2106
+ }
2107
+ },
2108
+ "transaction": {
2109
+ "description": "If a single transaction was specified, the transaction that was saved",
2110
+ "$ref": "#/definitions/TransactionDetail"
2111
+ },
2112
+ "transactions": {
2113
+ "type": "array",
2114
+ "description": "If multiple transactions were specified, the transactions that were saved",
2115
+ "items": {
2116
+ "$ref": "#/definitions/TransactionDetail"
2117
+ }
2118
+ },
2119
+ "duplicate_import_ids": {
2120
+ "type": "array",
2121
+ "description": "If multiple transactions were specified, a list of import_ids that were not were created because of an existing import_id found on the same account",
2122
+ "items": {
2123
+ "type": "string"
2124
+ }
2125
+ }
2126
+ }
2127
+ }
2128
+ }
2129
+ },
1913
2130
  "TransactionResponse": {
1914
2131
  "type": "object",
1915
2132
  "required": ["data"],
@@ -1942,6 +2159,7 @@
1942
2159
  "payee_id",
1943
2160
  "category_id",
1944
2161
  "transfer_account_id",
2162
+ "transfer_transaction_id",
1945
2163
  "import_id",
1946
2164
  "deleted"
1947
2165
  ],
@@ -1990,12 +2208,17 @@
1990
2208
  },
1991
2209
  "transfer_account_id": {
1992
2210
  "type": "string",
1993
- "format": "uuid"
2211
+ "format": "uuid",
2212
+ "description": "If a transfer transaction, the account to which it transfers"
2213
+ },
2214
+ "transfer_transaction_id": {
2215
+ "type": "string",
2216
+ "format": "uuid",
2217
+ "description": "If a transfer transaction, the id of transaction on the other side of the transfer"
1994
2218
  },
1995
2219
  "import_id": {
1996
2220
  "type": "string",
1997
- "description":
1998
- "If the Transaction was imported, this field is a unique (by account) import identifier. If this transaction was imported through File Based Import or Direct Import and not through the API, the import_id will have the format: 'YNAB:[milliunit_amount]:[iso_date]:[occurrence]'. For example, a transaction dated 2015-12-30 in the amount of -$294.23 USD would have an import_id of 'YNAB:-294230:2015-12-30:1'. If a second transaction on the same account was imported and had the same date and same amount, its import_id would be 'YNAB:-294230:2015-12-30:2'."
2221
+ "description": "If the Transaction was imported, this field is a unique (by account) import identifier. If this transaction was imported through File Based Import or Direct Import and not through the API, the import_id will have the format: 'YNAB:[milliunit_amount]:[iso_date]:[occurrence]'. For example, a transaction dated 2015-12-30 in the amount of -$294.23 USD would have an import_id of 'YNAB:-294230:2015-12-30:1'. If a second transaction on the same account was imported and had the same date and same amount, its import_id would be 'YNAB:-294230:2015-12-30:2'."
1999
2222
  },
2000
2223
  "deleted": {
2001
2224
  "type": "boolean",
@@ -2055,14 +2278,12 @@
2055
2278
  "type": {
2056
2279
  "type": "string",
2057
2280
  "enum": ["transaction", "subtransaction"],
2058
- "description":
2059
- "Whether the hybrid transaction represents a regular transaction or a subtransaction"
2281
+ "description": "Whether the hybrid transaction represents a regular transaction or a subtransaction"
2060
2282
  },
2061
2283
  "parent_transaction_id": {
2062
2284
  "type": "string",
2063
2285
  "format": "uuid",
2064
- "description":
2065
- "For subtransaction types, this is the id of the pararent transaction. For transaction types, this id will be always be null."
2286
+ "description": "For subtransaction types, this is the id of the pararent transaction. For transaction types, this id will be always be null."
2066
2287
  },
2067
2288
  "account_name": {
2068
2289
  "type": "string"
@@ -2077,71 +2298,22 @@
2077
2298
  }
2078
2299
  ]
2079
2300
  },
2080
- "SaveTransactionWrapper": {
2301
+ "SaveMonthCategoryWrapper": {
2081
2302
  "type": "object",
2082
- "required": ["transaction"],
2303
+ "required": ["month_category"],
2083
2304
  "properties": {
2084
- "transaction": {
2085
- "$ref": "#/definitions/SaveTransaction"
2305
+ "month_category": {
2306
+ "$ref": "#/definitions/SaveMonthCategory"
2086
2307
  }
2087
2308
  }
2088
2309
  },
2089
- "SaveTransaction": {
2310
+ "SaveMonthCategory": {
2090
2311
  "type": "object",
2091
- "required": ["account_id", "date", "amount"],
2312
+ "required": ["budgeted"],
2092
2313
  "properties": {
2093
- "account_id": {
2094
- "type": "string",
2095
- "format": "uuid"
2096
- },
2097
- "date": {
2098
- "type": "string",
2099
- "format": "date"
2100
- },
2101
- "amount": {
2314
+ "budgeted": {
2102
2315
  "type": "integer",
2103
- "format": "1234000",
2104
- "description": "The transaction amount in milliunits format"
2105
- },
2106
- "payee_id": {
2107
- "type": "string",
2108
- "format": "uuid",
2109
- "description":
2110
- "The payee for the transaction. Transfer payees are not permitted and will be ignored if supplied."
2111
- },
2112
- "payee_name": {
2113
- "type": "string",
2114
- "description":
2115
- "The payee name. If a payee_name value is provided and payee_id has a null value, the payee_name value will be used to resolve the payee by either (1) a matching payee rename rule (only if import_id is also specified) or (2) a payee with the same name or (3) creation of a new payee."
2116
- },
2117
- "category_id": {
2118
- "type": "string",
2119
- "format": "uuid",
2120
- "description":
2121
- "The category for the transaction. Split and Credit Card Payment categories are not permitted and will be ignored if supplied."
2122
- },
2123
- "memo": {
2124
- "type": "string"
2125
- },
2126
- "cleared": {
2127
- "type": "string",
2128
- "enum": ["cleared", "uncleared", "reconciled"],
2129
- "description": "The cleared status of the transaction"
2130
- },
2131
- "approved": {
2132
- "type": "boolean",
2133
- "description":
2134
- "Whether or not the transaction is approved. If not supplied, transaction will be unapproved by default."
2135
- },
2136
- "flag_color": {
2137
- "type": "string",
2138
- "enum": ["red", "orange", "yellow", "green", "blue", "purple", null],
2139
- "description": "The transaction flag"
2140
- },
2141
- "import_id": {
2142
- "type": "string",
2143
- "description":
2144
- "If specified for a new transaction, the transaction will be treated as Imported and assigned this import_id. If another transaction on the same account with this same import_id is later attempted to be created, it will be skipped to prevent duplication. Transactions imported through File Based Import or Direct Import and not through the API, are assigned an import_id in the format: 'YNAB:[milliunit_amount]:[iso_date]:[occurrence]'. For example, a transaction dated 2015-12-30 in the amount of -$294.23 USD would have an import_id of 'YNAB:-294230:2015-12-30:1'. If a second transaction on the same account was imported and had the same date and same amount, its import_id would be 'YNAB:-294230:2015-12-30:2'. Using a consistent format will prevent duplicates through Direct Import and File Based Import. If import_id is specified as null, the transaction will be treated as a user entered transaction."
2316
+ "description": "Budgeted amount in milliunits format"
2145
2317
  }
2146
2318
  }
2147
2319
  },
@@ -2167,8 +2339,7 @@
2167
2339
  },
2168
2340
  "duplicate_import_ids": {
2169
2341
  "type": "array",
2170
- "description":
2171
- "If any Transactions were not created because they had an import_id matching a transaction already on the same account, the specified import_id(s) will be included in this list.",
2342
+ "description": "If any Transactions were not created because they had an import_id matching a transaction already on the same account, the specified import_id(s) will be included in this list.",
2172
2343
  "items": {
2173
2344
  "type": "string"
2174
2345
  }
@@ -2236,8 +2407,7 @@
2236
2407
  "transfer_account_id": {
2237
2408
  "type": "string",
2238
2409
  "format": "uuid",
2239
- "description":
2240
- "If a transfer, the account_id which the subtransaction transfers to"
2410
+ "description": "If a transfer, the account_id which the subtransaction transfers to"
2241
2411
  },
2242
2412
  "deleted": {
2243
2413
  "type": "boolean",
@@ -2308,14 +2478,12 @@
2308
2478
  "date_first": {
2309
2479
  "type": "string",
2310
2480
  "format": "date",
2311
- "description":
2312
- "The first date for which the Scheduled Transaction was scheduled."
2481
+ "description": "The first date for which the Scheduled Transaction was scheduled."
2313
2482
  },
2314
2483
  "date_next": {
2315
2484
  "type": "string",
2316
2485
  "format": "date",
2317
- "description":
2318
- "The next date for which the Scheduled Transaction is scheduled."
2486
+ "description": "The next date for which the Scheduled Transaction is scheduled."
2319
2487
  },
2320
2488
  "frequency": {
2321
2489
  "type": "string",
@@ -2363,8 +2531,7 @@
2363
2531
  "transfer_account_id": {
2364
2532
  "type": "string",
2365
2533
  "format": "uuid",
2366
- "description":
2367
- "If a transfer, the account_id which the scheduled transaction transfers to"
2534
+ "description": "If a transfer, the account_id which the scheduled transaction transfers to"
2368
2535
  },
2369
2536
  "deleted": {
2370
2537
  "type": "boolean",
@@ -2397,8 +2564,7 @@
2397
2564
  },
2398
2565
  "subtransactions": {
2399
2566
  "type": "array",
2400
- "description":
2401
- "If a split scheduled transaction, the subtransactions.",
2567
+ "description": "If a split scheduled transaction, the subtransactions.",
2402
2568
  "items": {
2403
2569
  "$ref": "#/definitions/ScheduledSubTransaction"
2404
2570
  }
@@ -2431,8 +2597,7 @@
2431
2597
  "amount": {
2432
2598
  "type": "integer",
2433
2599
  "format": "1234000",
2434
- "description":
2435
- "The scheduled subtransaction amount in milliunits format"
2600
+ "description": "The scheduled subtransaction amount in milliunits format"
2436
2601
  },
2437
2602
  "memo": {
2438
2603
  "type": "string"
@@ -2448,8 +2613,7 @@
2448
2613
  "transfer_account_id": {
2449
2614
  "type": "string",
2450
2615
  "format": "uuid",
2451
- "description":
2452
- "If a transfer, the account_id which the scheduled subtransaction transfers to"
2616
+ "description": "If a transfer, the account_id which the scheduled subtransaction transfers to"
2453
2617
  },
2454
2618
  "deleted": {
2455
2619
  "type": "boolean",
@@ -2498,7 +2662,15 @@
2498
2662
  },
2499
2663
  "MonthSummary": {
2500
2664
  "type": "object",
2501
- "required": ["month", "note", "income", "budgeted", "activity", "to_be_budgeted", "age_of_money"],
2665
+ "required": [
2666
+ "month",
2667
+ "note",
2668
+ "income",
2669
+ "budgeted",
2670
+ "activity",
2671
+ "to_be_budgeted",
2672
+ "age_of_money"
2673
+ ],
2502
2674
  "properties": {
2503
2675
  "month": {
2504
2676
  "type": "string",
@@ -2510,26 +2682,22 @@
2510
2682
  "income": {
2511
2683
  "type": "integer",
2512
2684
  "format": "1234000",
2513
- "description":
2514
- "The total amount in transactions categorized to 'Inflow: To be Budgeted' in the month"
2685
+ "description": "The total amount in transactions categorized to 'Inflow: To be Budgeted' in the month"
2515
2686
  },
2516
2687
  "budgeted": {
2517
2688
  "type": "integer",
2518
2689
  "format": "1234000",
2519
- "description":
2520
- "The total amount budgeted in the month"
2690
+ "description": "The total amount budgeted in the month"
2521
2691
  },
2522
2692
  "activity": {
2523
2693
  "type": "integer",
2524
2694
  "format": "1234000",
2525
- "description":
2526
- "The total amount in transactions in the month, excluding those categorized to 'Inflow: To be Budgeted'"
2695
+ "description": "The total amount in transactions in the month, excluding those categorized to 'Inflow: To be Budgeted'"
2527
2696
  },
2528
2697
  "to_be_budgeted": {
2529
2698
  "type": "integer",
2530
2699
  "format": "1234000",
2531
- "description":
2532
- "The available amount for 'To be Budgeted'"
2700
+ "description": "The available amount for 'To be Budgeted'"
2533
2701
  },
2534
2702
  "age_of_money": {
2535
2703
  "type": "integer",
@@ -2548,7 +2716,7 @@
2548
2716
  "properties": {
2549
2717
  "categories": {
2550
2718
  "type": "array",
2551
- "description": "The budget month categories",
2719
+ "description": "the budget month categories",
2552
2720
  "items": {
2553
2721
  "$ref": "#/definitions/Category"
2554
2722
  }