@lunch-money/developer-docs 2.11.0-preview.9 → 2.11.1-preview.2

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.
package/README.md CHANGED
@@ -1,65 +1,24 @@
1
1
  # @lunch-money/developer-docs
2
2
 
3
- Documentation content for the [Lunch Money](https://lunchmoney.app) developer APIs
4
- the guides, v1/v2 reference docs, images, and doc-routing manifest that power the
5
- [Lunch Money developer portal](https://lunchmoney.dev).
3
+ Developer documentation content for Lunch Money APIs.
6
4
 
7
- Most API consumers want the OpenAPI spec instead: **[`@lunch-money/v2-api-spec`](https://www.npmjs.com/package/@lunch-money/v2-api-spec)**
8
- is the canonical machine-readable API contract. This package is the human-facing docs
9
- content, primarily for the docs server that renders the portal.
5
+ This package ships the public `developer-docs` repository content directories at the package root:
10
6
 
11
- ## What's in the package
7
+ - `docs/`
8
+ - `v1/`
9
+ - `v2/`
10
+ - `manifest.json`
12
11
 
13
- Shipped verbatim at the package root:
14
-
15
- - `docs/` — version-independent guides (getting started, pagination, rate limiting, …)
16
- - `v1/` — v1 API reference markdown
17
- - `v2/` — v2 guides, images, and a **convenience copy** of the OpenAPI YAML under
18
- `v2/spec/` (non-canonical; the canonical spec is `@lunch-money/v2-api-spec`)
19
- - `manifest.json` — doc routes, redirects, and sidebar structure
20
-
21
- ## Consuming the content
22
-
23
- Resolve the package root, then read content files relative to it:
12
+ The package version tracks the newest API version documented by this content. Server consumers should pin this package explicitly and resolve the package root with:
24
13
 
25
14
  ```js
26
- const path = require('path');
27
- const fs = require('fs');
28
-
29
15
  const docsRoot = path.dirname(require.resolve('@lunch-money/developer-docs/package.json'));
30
- const intro = fs.readFileSync(path.join(docsRoot, 'docs/getting-started.md'), 'utf8');
31
16
  ```
32
17
 
33
- `manifest.json` describes every page the docs server renders:
34
-
35
- ```jsonc
36
- {
37
- "pages": [
38
- {
39
- "path": "/amounts-and-balances", // canonical URL
40
- "file": "docs/amounts-and-balances.md", // path within this package
41
- "title": "Amounts & Balances",
42
- "section": "GUIDES", // sidebar grouping
43
- "type": "markdown", // "markdown" | "html" | "v1-slate"
44
- "aliases": ["/v2/amounts-and-balances"] // legacy URLs → 301 to path
45
- }
46
- ],
47
- "redirects": [ /* { from, to, status } */ ],
48
- "sidebar": { "docs": [ /* … */ ], "v1": [ /* … */ ] }
49
- }
50
- ```
51
-
52
- ## Versioning
53
-
54
- The package version tracks the newest API version this content documents (e.g. `2.11.x`
55
- documents the v2.11 API). Pin an exact version in server deployments so docs are
56
- deterministic.
18
+ The OpenAPI YAML under `v2/spec/` is included as a convenience copy because the docs tree is shipped verbatim. The canonical v2 API specification package is `@lunch-money/v2-api-spec`.
57
19
 
58
- ## Contributing
20
+ ## Updating Routes and Sidebar
59
21
 
60
- Guides, spec, and the routing manifest are edited in the public
61
- [`developer-docs` repository](https://github.com/lunch-money/developer-docs) — see its
62
- README for how to add or move a page. This npm package is a published build of that
63
- content.
22
+ The docs server reads `manifest.json` from the package root. When adding or moving a documentation page, update the content file and add a matching manifest entry with `path`, `file`, `title`, `section`, and `type`.
64
23
 
65
- _ISC licensed._
24
+ Run `npm run pack:docs` from the repository root before publishing. The package validates the manifest during `prepack` and fails if paths collide, aliases are duplicated, or referenced files are missing.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lunch-money/developer-docs",
3
- "version": "2.11.0-preview.9",
3
+ "version": "2.11.1-preview.2",
4
4
  "description": "Developer documentation content for Lunch Money APIs",
5
5
  "exports": {
6
6
  ".": "./package.json",
@@ -5,6 +5,11 @@ The Lunch Money API spec uses a modified version of SEMVER for its versioning me
5
5
  - The minor version represents the number of main endpoints the current version of the spec supports. For example, a version of the API that supports the /me, /categories, and /transactions endpoints would have a minor version of 3.
6
6
  - The revision number represents the number of updates since the last endpoint was added. For example, each time changes are made to one of the existing three APIs as described above, the revision number will be bumped.
7
7
 
8
+ ## v2.11.1 - TBD
9
+ - Add `GET /me/account/settings` and `PUT /me/account/settings` for account-level settings
10
+ - Add `GET /me/user/settings` and `PUT /me/user/settings` for user-level display and formatting preferences
11
+ - Document `GET /budgets/settings` response schema publicly; change `budget_period_quantity` to integer
12
+
8
13
  ## v2.11.0 - TBD
9
14
  - Add `GET /balance_history`
10
15
  - Add `GET /balance_history/{account_type}/{account_id}`
@@ -33,7 +33,7 @@ info:
33
33
  license:
34
34
  name: Apache 2.0
35
35
  url: http://www.apache.org/licenses/LICENSE-2.0.html
36
- version: 2.11.0
36
+ version: 2.11.1
37
37
 
38
38
  servers:
39
39
  - url: https://api.lunchmoney.dev/v2
@@ -44,7 +44,10 @@ servers:
44
44
 
45
45
  tags:
46
46
  - name: me
47
- description: View details and settings for the current user and account
47
+ description: View details and settings for the current user and account.<p>
48
+ Use [/me/account/settings](#tag/me/GET/me/account/settings) and
49
+ [/me/user/settings](#tag/me/GET/me/user/settings) for account- and
50
+ user-level preferences.
48
51
  - name: categories
49
52
  description: Work with categories
50
53
  externalDocs:
@@ -141,9 +144,15 @@ components:
141
144
  description: Unique ID for the current budgeting account
142
145
  budget_name:
143
146
  type: string
144
- description: Name of the current budgeting account
147
+ description: Name of the current budgeting account.<p> Also available
148
+ as `display_name` on
149
+ [/me/account/settings](#tag/me/GET/me/account/settings), which is
150
+ the preferred endpoint for reading and updating account settings.
145
151
  primary_currency:
146
- description: Primary currency for the current budgeting account
152
+ description: Primary currency for the current budgeting account.<p>
153
+ Also available on [/me/account/settings](#tag/me/GET/me/account/settings),
154
+ which is the preferred endpoint for reading and updating account
155
+ settings.
147
156
  allOf:
148
157
  - $ref: "#/components/schemas/currencyEnum"
149
158
  api_key_label:
@@ -3667,6 +3676,371 @@ components:
3667
3676
  - budget_income_option
3668
3677
  - budget_rollover_left_to_budget
3669
3678
 
3679
+ weekStartsOnEnum:
3680
+ type: string
3681
+ title: week starts on enum
3682
+ enum:
3683
+ - sunday
3684
+ - monday
3685
+ description: The day on which a calendar week begins.
3686
+
3687
+ monthYearFormatEnum:
3688
+ type: string
3689
+ title: month and year format enum
3690
+ description: Format string for displaying month and year values
3691
+ in the Lunch Money app.
3692
+ enum:
3693
+ - "MMMM YYYY"
3694
+ - "MMM YYYY"
3695
+ - "YYYY MMM"
3696
+ - "MM YYYY"
3697
+ - "MM-YYYY"
3698
+ - "MM.YYYY"
3699
+ - "MM/YYYY"
3700
+ - "M YYYY"
3701
+ - "M-YYYY"
3702
+ - "M.YYYY"
3703
+ - "M/YYYY"
3704
+ - "YYYY M"
3705
+ - "YYYY-M"
3706
+ - "YYYY.M"
3707
+ - "YYYY/M"
3708
+ - "YYYY MM"
3709
+ - "YYYY-MM"
3710
+ - "YYYY.MM"
3711
+ - "YYYY/MM"
3712
+
3713
+ monthDayYearFormatEnum:
3714
+ type: string
3715
+ title: month, day and year format enum
3716
+ description: Format string for displaying full dates in the
3717
+ Lunch Money app.
3718
+ enum:
3719
+ - "MMM D, YYYY"
3720
+ - "D MMM YYYY"
3721
+ - "YYYY MM DD"
3722
+ - "YYYY-MM-DD"
3723
+ - "YYYY.MM.DD"
3724
+ - "YYYY/MM/DD"
3725
+ - "YYYY M DD"
3726
+ - "YYYY-M-DD"
3727
+ - "YYYY.M.DD"
3728
+ - "YYYY/M/DD"
3729
+ - "YYYY MM D"
3730
+ - "YYYY-MM-D"
3731
+ - "YYYY.MM.D"
3732
+ - "YYYY/MM/D"
3733
+ - "YYYY M D"
3734
+ - "YYYY-M-D"
3735
+ - "YYYY.M.D"
3736
+ - "YYYY/M/D"
3737
+ - "DD MM YYYY"
3738
+ - "DD-MM-YYYY"
3739
+ - "DD.MM.YYYY"
3740
+ - "DD/MM/YYYY"
3741
+ - "DD M YYYY"
3742
+ - "DD-M-YYYY"
3743
+ - "DD.M.YYYY"
3744
+ - "DD/M/YYYY"
3745
+ - "D MM YYYY"
3746
+ - "D-MM-YYYY"
3747
+ - "D.MM.YYYY"
3748
+ - "D/MM/YYYY"
3749
+ - "D M YYYY"
3750
+ - "D-M-YYYY"
3751
+ - "D.M.YYYY"
3752
+ - "D/M/YYYY"
3753
+ - "M D YYYY"
3754
+ - "M-D-YYYY"
3755
+ - "M.D.YYYY"
3756
+ - "M/D/YYYY"
3757
+ - "MM D YYYY"
3758
+ - "MM-D-YYYY"
3759
+ - "MM.D.YYYY"
3760
+ - "MM/D/YYYY"
3761
+ - "MM DD YYYY"
3762
+ - "MM-DD-YYYY"
3763
+ - "MM.DD.YYYY"
3764
+ - "MM/DD/YYYY"
3765
+ - "M DD YYYY"
3766
+ - "M-DD-YYYY"
3767
+ - "M.DD.YYYY"
3768
+ - "M/DD/YYYY"
3769
+
3770
+ monthDayFormatEnum:
3771
+ type: string
3772
+ title: month and day format enum
3773
+ description: Format string for displaying month and day values
3774
+ without a year.
3775
+ enum:
3776
+ - "MMM D"
3777
+ - "MMM DD"
3778
+ - "D MMM"
3779
+ - "DD MMM"
3780
+ - "MM D"
3781
+ - "MM-D"
3782
+ - "MM.D"
3783
+ - "MM/D"
3784
+ - "MM DD"
3785
+ - "MM-DD"
3786
+ - "MM.DD"
3787
+ - "MM/DD"
3788
+ - "M D"
3789
+ - "M-D"
3790
+ - "M.D"
3791
+ - "M/D"
3792
+ - "M DD"
3793
+ - "M-DD"
3794
+ - "M.DD"
3795
+ - "M/DD"
3796
+ - "D MM"
3797
+ - "D-MM"
3798
+ - "D.MM"
3799
+ - "D/MM"
3800
+ - "DD MM"
3801
+ - "DD-MM"
3802
+ - "DD.MM"
3803
+ - "DD/MM"
3804
+ - "D M"
3805
+ - "D-M"
3806
+ - "D.M"
3807
+ - "D/M"
3808
+ - "DD M"
3809
+ - "DD-M"
3810
+ - "DD.M"
3811
+ - "DD/M"
3812
+
3813
+ accountSettingsObject:
3814
+ type: object
3815
+ title: account settings object
3816
+ additionalProperties: false
3817
+ description: Account-level settings for the budgeting account
3818
+ associated with the authorized API token.
3819
+ properties:
3820
+ primary_currency:
3821
+ description: Primary currency for the account.
3822
+ allOf:
3823
+ - $ref: "#/components/schemas/currencyEnum"
3824
+ supported_currencies:
3825
+ type: array
3826
+ items:
3827
+ $ref: "#/components/schemas/currencyEnum"
3828
+ description: Currencies available when creating or editing transactions,
3829
+ balances, and other amounts in the Lunch Money app.
3830
+ display_name:
3831
+ type: string
3832
+ nullable: true
3833
+ description: Display name of the budgeting account in the Lunch Money
3834
+ app.
3835
+ locale:
3836
+ type: string
3837
+ description: Locale used for formatting dates and numbers in the
3838
+ Lunch Money app (for example, `en-US`). When no locale is explicitly
3839
+ stored for the account, the effective locale is derived from the
3840
+ `default_locale` associated with `primary_currency` in the
3841
+ currencies table (for example, `usd` → `en-US`, `cad` → `en-CA`,
3842
+ `gbp` → `en-GB`).
3843
+ auto_create_category_rules:
3844
+ type: boolean
3845
+ default: true
3846
+ description: If `true`, category rules are created automatically when
3847
+ categorizing transactions.
3848
+ auto_create_suggested_transaction_rules:
3849
+ type: boolean
3850
+ default: true
3851
+ description: If `true`, suggested transaction rules are created
3852
+ automatically.
3853
+ auto_review_transaction_on_update:
3854
+ type: boolean
3855
+ default: true
3856
+ description: If `true`, transactions are marked as reviewed when
3857
+ updated.
3858
+ auto_review_transaction_on_creation:
3859
+ type: boolean
3860
+ default: true
3861
+ description: If `true`, transactions are marked as reviewed when
3862
+ created.
3863
+ required:
3864
+ - primary_currency
3865
+ - supported_currencies
3866
+ - display_name
3867
+ - locale
3868
+ - auto_create_category_rules
3869
+ - auto_create_suggested_transaction_rules
3870
+ - auto_review_transaction_on_update
3871
+ - auto_review_transaction_on_creation
3872
+
3873
+ updateAccountSettingsRequestObject:
3874
+ x-internal: true
3875
+ type: object
3876
+ additionalProperties: false
3877
+ description: Request body for updating account settings. Include at least
3878
+ one property to update.
3879
+ properties:
3880
+ primary_currency:
3881
+ allOf:
3882
+ - $ref: "#/components/schemas/currencyEnum"
3883
+ description: If set, updates the account's primary currency.
3884
+ x-updatable: true
3885
+ supported_currencies:
3886
+ type: array
3887
+ items:
3888
+ $ref: "#/components/schemas/currencyEnum"
3889
+ description: If set, replaces the list of supported currencies for the
3890
+ account.
3891
+ x-updatable: true
3892
+ display_name:
3893
+ type: string
3894
+ nullable: true
3895
+ description: If set, updates the display name of the budgeting account.
3896
+ x-updatable: true
3897
+ locale:
3898
+ type: string
3899
+ description: If set, updates the locale used for formatting dates and
3900
+ numbers in the Lunch Money app.
3901
+ x-updatable: true
3902
+ auto_create_category_rules:
3903
+ type: boolean
3904
+ description: If set, updates whether category rules are created
3905
+ automatically.
3906
+ x-updatable: true
3907
+ auto_create_suggested_transaction_rules:
3908
+ type: boolean
3909
+ description: If set, updates whether suggested transaction rules are
3910
+ created automatically.
3911
+ x-updatable: true
3912
+ auto_review_transaction_on_update:
3913
+ type: boolean
3914
+ description: If set, updates whether transactions are marked as reviewed
3915
+ when updated.
3916
+ x-updatable: true
3917
+ auto_review_transaction_on_creation:
3918
+ type: boolean
3919
+ description: If set, updates whether transactions are marked as reviewed
3920
+ when created.
3921
+ x-updatable: true
3922
+
3923
+ userSettingsObject:
3924
+ type: object
3925
+ title: user settings object
3926
+ additionalProperties: false
3927
+ description: User-level display and formatting preferences for the user
3928
+ associated with the authorized API token.
3929
+ properties:
3930
+ show_debits_as_negative:
3931
+ type: boolean
3932
+ default: true
3933
+ description: Display preference for how amounts are shown in the Lunch
3934
+ Money app. When `true`, debits are shown as negative values and
3935
+ credits as positive values.<p> This setting does **not** change
3936
+ amount sign conventions in API responses. Amount fields such as
3937
+ `amount` and `to_base` on transaction objects always use positive
3938
+ values for debits and negative values for credits.
3939
+ auto_suggest_payee:
3940
+ type: boolean
3941
+ default: true
3942
+ description: If `true`, payee suggestions are shown when entering
3943
+ transactions in the Lunch Money app.
3944
+ month_year_format:
3945
+ allOf:
3946
+ - $ref: "#/components/schemas/monthYearFormatEnum"
3947
+ default: "MMM YYYY"
3948
+ description: Format string used when displaying month and year values.
3949
+ month_day_year_format:
3950
+ allOf:
3951
+ - $ref: "#/components/schemas/monthDayYearFormatEnum"
3952
+ default: "MMM D, YYYY"
3953
+ description: Format string used when displaying full dates (month, day,
3954
+ and year).
3955
+ month_day_format:
3956
+ allOf:
3957
+ - $ref: "#/components/schemas/monthDayFormatEnum"
3958
+ default: "MMM D"
3959
+ description: Format string used when displaying month and day values
3960
+ without a year.
3961
+ show_am_pm:
3962
+ type: boolean
3963
+ default: true
3964
+ description: If `true`, times are displayed using a 12-hour clock with
3965
+ AM/PM. If `false`, times are displayed using a 24-hour clock.
3966
+ week_starts_on:
3967
+ allOf:
3968
+ - $ref: "#/components/schemas/weekStartsOnEnum"
3969
+ default: sunday
3970
+ description: The day on which a calendar week begins.
3971
+ always_display_year:
3972
+ type: boolean
3973
+ default: false
3974
+ description: If `true`, dates always include the year and
3975
+ `month_day_format` is not used.
3976
+ always_display_weekday:
3977
+ type: boolean
3978
+ default: true
3979
+ description: If `true`, weekday names are included when displaying
3980
+ dates.
3981
+ required:
3982
+ - show_debits_as_negative
3983
+ - auto_suggest_payee
3984
+ - month_year_format
3985
+ - month_day_year_format
3986
+ - month_day_format
3987
+ - show_am_pm
3988
+ - week_starts_on
3989
+ - always_display_year
3990
+ - always_display_weekday
3991
+
3992
+ updateUserSettingsRequestObject:
3993
+ x-internal: true
3994
+ type: object
3995
+ additionalProperties: false
3996
+ description: Request body for updating user settings. Include at least one
3997
+ property to update.
3998
+ properties:
3999
+ show_debits_as_negative:
4000
+ type: boolean
4001
+ description: If set, updates the display preference for amount signs in
4002
+ the Lunch Money app. Does not affect amount sign conventions in API
4003
+ responses.
4004
+ x-updatable: true
4005
+ auto_suggest_payee:
4006
+ type: boolean
4007
+ description: If set, updates whether payee suggestions are shown.
4008
+ x-updatable: true
4009
+ month_year_format:
4010
+ allOf:
4011
+ - $ref: "#/components/schemas/monthYearFormatEnum"
4012
+ description: If set, updates the month and year display format.
4013
+ x-updatable: true
4014
+ month_day_year_format:
4015
+ allOf:
4016
+ - $ref: "#/components/schemas/monthDayYearFormatEnum"
4017
+ description: If set, updates the full date display format.
4018
+ x-updatable: true
4019
+ month_day_format:
4020
+ allOf:
4021
+ - $ref: "#/components/schemas/monthDayFormatEnum"
4022
+ description: If set, updates the month and day display format.
4023
+ x-updatable: true
4024
+ show_am_pm:
4025
+ type: boolean
4026
+ description: If set, updates whether times use a 12-hour (AM/PM) or
4027
+ 24-hour clock.
4028
+ x-updatable: true
4029
+ week_starts_on:
4030
+ allOf:
4031
+ - $ref: "#/components/schemas/weekStartsOnEnum"
4032
+ description: If set, updates the day on which a calendar week begins.
4033
+ x-updatable: true
4034
+ always_display_year:
4035
+ type: boolean
4036
+ description: If set, updates whether dates always include the year.
4037
+ x-updatable: true
4038
+ always_display_weekday:
4039
+ type: boolean
4040
+ description: If set, updates whether weekday names are shown when
4041
+ displaying dates.
4042
+ x-updatable: true
4043
+
3670
4044
  # Summary endpoint response schemas
3671
4045
  summaryResponseObject:
3672
4046
  type: object
@@ -4465,8 +4839,13 @@ paths:
4465
4839
  tags:
4466
4840
  - me
4467
4841
  summary: Get current user
4468
- description: Get details about the user associated with the supplied
4469
- authorization token.
4842
+ description: |-
4843
+ Get details about the user associated with the supplied authorization
4844
+ token.<p> For account- and user-level preferences, prefer
4845
+ [/me/account/settings](#tag/me/GET/me/account/settings) and
4846
+ [/me/user/settings](#tag/me/GET/me/user/settings). Properties such as
4847
+ `primary_currency` and `budget_name` remain on this response for
4848
+ backwards compatibility.
4470
4849
  operationId: getMe
4471
4850
  parameters: []
4472
4851
  responses:
@@ -4490,6 +4869,165 @@ paths:
4490
4869
  $ref: "#/components/responses/rateLimited"
4491
4870
  "500":
4492
4871
  $ref: "#/components/responses/serverError"
4872
+ /me/account/settings:
4873
+ get:
4874
+ tags:
4875
+ - me
4876
+ summary: Get account settings
4877
+ description: Returns account-level settings for the budgeting
4878
+ account associated with the authorized API token.
4879
+ operationId: getAccountSettings
4880
+ responses:
4881
+ "200":
4882
+ description: Account settings for the current budgeting account
4883
+ content:
4884
+ application/json:
4885
+ schema:
4886
+ $ref: "#/components/schemas/accountSettingsObject"
4887
+ example:
4888
+ primary_currency: usd
4889
+ supported_currencies:
4890
+ - usd
4891
+ - cad
4892
+ - jpy
4893
+ display_name: "\U0001F3E0 Family budget"
4894
+ locale: en-US
4895
+ auto_create_category_rules: true
4896
+ auto_create_suggested_transaction_rules: true
4897
+ auto_review_transaction_on_update: true
4898
+ auto_review_transaction_on_creation: true
4899
+ "401":
4900
+ $ref: "#/components/responses/unauthorizedToken"
4901
+ "429":
4902
+ $ref: "#/components/responses/rateLimited"
4903
+ "500":
4904
+ $ref: "#/components/responses/serverError"
4905
+ put:
4906
+ tags:
4907
+ - me
4908
+ summary: Update account settings
4909
+ description: |-
4910
+ Updates account-level settings for the budgeting account
4911
+ associated with the authorized API token.<p> You may submit the response from a
4912
+ `GET /me/account/settings` as the request body; however, only certain
4913
+ properties can be updated.<p> It is also possible to provide only the
4914
+ properties to be updated in the request body, as long as the request
4915
+ includes at least one updatable property.
4916
+ operationId: updateAccountSettings
4917
+ requestBody:
4918
+ required: true
4919
+ content:
4920
+ application/json:
4921
+ schema:
4922
+ $ref: "#/components/schemas/updateAccountSettingsRequestObject"
4923
+ examples:
4924
+ Update display name:
4925
+ value:
4926
+ display_name: "Travel budget"
4927
+ Update automation preferences:
4928
+ value:
4929
+ auto_create_category_rules: false
4930
+ auto_review_transaction_on_creation: false
4931
+ responses:
4932
+ "200":
4933
+ description: Account settings updated successfully
4934
+ content:
4935
+ application/json:
4936
+ schema:
4937
+ $ref: "#/components/schemas/accountSettingsObject"
4938
+ "400":
4939
+ description: Invalid request body
4940
+ content:
4941
+ application/json:
4942
+ schema:
4943
+ $ref: "#/components/schemas/errorResponseObject"
4944
+ "401":
4945
+ $ref: "#/components/responses/unauthorizedToken"
4946
+ "429":
4947
+ $ref: "#/components/responses/rateLimited"
4948
+ "500":
4949
+ $ref: "#/components/responses/serverError"
4950
+ /me/user/settings:
4951
+ get:
4952
+ tags:
4953
+ - me
4954
+ summary: Get user settings
4955
+ description: Returns user-level display and formatting preferences for the
4956
+ user associated with the authorized API token.
4957
+ operationId: getUserSettings
4958
+ responses:
4959
+ "200":
4960
+ description: User settings for the authorized user
4961
+ content:
4962
+ application/json:
4963
+ schema:
4964
+ $ref: "#/components/schemas/userSettingsObject"
4965
+ example:
4966
+ show_debits_as_negative: true
4967
+ auto_suggest_payee: true
4968
+ month_year_format: "MMM YYYY"
4969
+ month_day_year_format: "MMM D, YYYY"
4970
+ month_day_format: "MMM D"
4971
+ show_am_pm: true
4972
+ week_starts_on: sunday
4973
+ always_display_year: false
4974
+ always_display_weekday: true
4975
+ "401":
4976
+ $ref: "#/components/responses/unauthorizedToken"
4977
+ "429":
4978
+ $ref: "#/components/responses/rateLimited"
4979
+ "500":
4980
+ $ref: "#/components/responses/serverError"
4981
+ put:
4982
+ tags:
4983
+ - me
4984
+ summary: Update user settings
4985
+ description: |-
4986
+ Updates user-level display and formatting preferences for the user
4987
+ associated with the authorized API token.<p> You may submit the response
4988
+ from a `GET /me/user/settings` as the request body; however, only
4989
+ certain properties can be updated.<p> It is also possible to provide
4990
+ only the properties to be updated in the request body, as long as the
4991
+ request includes at least one updatable property.<p> Updating
4992
+ `show_debits_as_negative` affects display in the Lunch Money app only.
4993
+ Amount fields in API responses always use positive values for debits and
4994
+ negative values for credits.
4995
+ operationId: updateUserSettings
4996
+ requestBody:
4997
+ required: true
4998
+ content:
4999
+ application/json:
5000
+ schema:
5001
+ $ref: "#/components/schemas/updateUserSettingsRequestObject"
5002
+ examples:
5003
+ Update date formats:
5004
+ value:
5005
+ month_year_format: "YYYY-MM"
5006
+ month_day_year_format: "YYYY-MM-DD"
5007
+ month_day_format: "MM-DD"
5008
+ Use 24-hour time and Monday week start:
5009
+ value:
5010
+ show_am_pm: false
5011
+ week_starts_on: monday
5012
+ responses:
5013
+ "200":
5014
+ description: User settings updated successfully
5015
+ content:
5016
+ application/json:
5017
+ schema:
5018
+ $ref: "#/components/schemas/userSettingsObject"
5019
+ "400":
5020
+ description: Invalid request body
5021
+ content:
5022
+ application/json:
5023
+ schema:
5024
+ $ref: "#/components/schemas/errorResponseObject"
5025
+ "401":
5026
+ $ref: "#/components/responses/unauthorizedToken"
5027
+ "429":
5028
+ $ref: "#/components/responses/rateLimited"
5029
+ "500":
5030
+ $ref: "#/components/responses/serverError"
4493
5031
  /summary:
4494
5032
  get:
4495
5033
  tags:
@@ -11618,7 +12156,9 @@ paths:
11618
12156
  description: |-
11619
12157
  Returns budget period and display settings for the budget
11620
12158
  associated with this API token.<p> These control how budget **periods** are calculated
11621
- (granularity, anchor date, rollover, and related options).
12159
+ (granularity, anchor date, rollover, and related options). For general
12160
+ budget preferences such as currency and locale, see
12161
+ [/me/account/settings](#tag/me/GET/me/account/settings).
11622
12162
  operationId: getBudgetSettings
11623
12163
  responses:
11624
12164
  "200":